Adicionando lógica aos diretórios 'find' contendo [criteria A] ou [criteria B]

0

Eu herdei um vasto arquivo de mídia sem um esquema organizacional unificador. Seu conteúdo data de pelo menos 10 anos. Foi-me pedido que encontrasse uma agulha nesta pilha de feno e tenho alguns palpites sobre o nome dessa agulha.

Mas eu não sei o nome dele com certeza. Eu quero usar um único comando find no Terminal para procurar por nomes alternativos. E eu quero incluir um segundo conjunto: possíveis extensões de arquivo.

No pseudocódigo, eis o que quero dizer:

find [in a given directory] [files and folders whose name matches (*guess1* OR *guess2*) AND whose name matches (*.extension1 OR *.extension2)] .

Como devo expressar isso no Terminal?

    
por Crowder 01.05.2014 / 17:21

2 respostas

0

find possui operadores para isso *, e você também pode agrupá-los por precedência:

find /some/path \
\( -name "*guess1*" -or -name "*guess2*" \) \
-and \
\( -name "*.extension1" -or -name "*.extension2" \)

Aqui, escapei de novas linhas para facilitar a leitura e escapei dos parênteses, pois eles podem ter um significado especial para o shell.

* Observe que o manual acima é para GNU find , que não é fornecido com o OS X por padrão (mas pode ser instalado através de brew install findutils ). A sintaxe é a mesma.

    
por 01.05.2014 / 17:44
0

O find do terminal de aprendizagem é muito útil quando eu vou entre o MacOS e o Linux.

Mas quando estou no MacOS e ajudando outra pessoa a encontrar um arquivo / pasta, não quero mencionar o uso do terminal.

Uma solução gratuita, rápida e flexível é o link da EasyFind     

por 01.05.2014 / 19:45

Tags