“where” versus “find” no FreeBSD

3

Então eu sei que o comando where é um shell embutido e como resultado ele executa mais rápido e apenas encontra arquivos executáveis; mas existe alguma outra diferença entre os comandos where e find ?

    
por smhquery 30.07.2017 / 11:07

2 respostas

3

Eles são animais muito diferentes. where foo in tcsh (também em zsh ) apenas informa onde foo está localizado no seu $path (ou mais exatamente os diferentes comandos foo que os shells conhecem olhando na lista de builtins do shell e palavras-chave, aliases e arquivos executáveis encontrados por meio de uma pesquisa de $PATH (mapeada para o $path array)). find é um comando bastante poderoso para procurar arquivos de acordo com vários critérios.

Por exemplo,

find /usr/local -type f -mtime -30 -atime +7 \( -user bob -o -user karen \) -perm -001 -exec chmod -x {} \;

encontrará todos os arquivos em /usr/local que são arquivos comuns (não diretórios ou qualquer coisa), foram modificados nos últimos 30 dias mas não acessados na semana passada, pertencem a bob ou karen e são executáveis por outro. Então, chmod s esses arquivos.

    
por 31.07.2017 / 16:58
1

Apenas um sidenote: há também o comando locate (1), que é um pouco similar ao find (1) - em que ele procura por qualquer tipo de arquivo, não apenas os do $ PATH (em outras palavras: não apenas para "comandos executáveis") - mas usa um índice periodicamente reconstruído, por isso é bastante rápido.

    
por 01.08.2017 / 17:29