Usando uma matriz como critério de pesquisa para o comando find

0

Gostaria de saber se é possível declarar uma matriz de tipos de arquivos a serem pesquisados com o comando find?

Então

fileTypes=(*.omf *.jpeg *.xml *.otf)
find . -name ${fileTypes}

Em vez de:

find . -name '*.omf' -o -name '*.jpeg' -o -name '*.xml' -o -name '*.otf'
    
por Drew Diver 29.03.2016 / 17:59

1 resposta

1

Eu não acredito que seja suportado nativamente pelo comando find, mas você pode passar o comando find com este forro para obter a funcionalidade desejada:

for type in ${fileTypes[@]};do find -name "${type}"; done

Apenas uma nota, se você definir a matriz usando curingas em um diretório no qual os arquivos correspondam ao padrão, a globbing executará a expansão de nome de arquivo no arquivo e colocará esse nome de arquivo em sua matriz. Isso fará com que a iteração do comando find apenas procure por esse nome de arquivo, e nem todos os arquivos com essa extensão. Você pode evitar essa queda potencial definindo a matriz sem os curingas:

fileTypes=(.omf .jpeg .xml .otf)

Em seguida, adicione o curinga ao comando de localização: find -name "*${type}"

    
por 29.03.2016 / 19:10

Tags