Ignore globs que não correspondem a nada

4

Eu quero selecionar todos os arquivos em um diretório que termine com qualquer uma das seguintes extensões: txt , java , xml , csv

Agora mesmo estou fazendo assim:

echo *.{txt,java,xml,csv}

O problema é que, se o diretório não contiver, digamos, um arquivo .java , a saída será semelhante a:

f0030720.txt f0033510.txt f1028864.txt f1029056.txt f1068796.txt *.java f0905776.xml f1067014.csv f1067046.csv f1067056.csv f1067074.csv

Esse *.java item cria problemas se eu usar mv , tar ou qualquer coisa assim, pois não é realmente um arquivo. Existe alguma maneira de eu ignorar qualquer globs que realmente não correspondem a um arquivo?

    
por IQAndreas 14.10.2015 / 18:52

1 resposta

8

Defina a opção nullglob :

shopt -s nullglob
    
por 14.10.2015 / 18:55