忽略不匹配任何内容的 glob

IQA*_*eas 4 shell bash wildcards

我想选择目录中以以下任何扩展名结尾的所有文件:txt, java, xml,csv

现在我正在这样做:

echo *.{txt,java,xml,csv}
Run Code Online (Sandbox Code Playgroud)

问题是,如果目录不包含,比如说,一个.java文件,输出看起来像这样:

f0030720.txt f0033510.txt f1028864.txt f1029056.txt f1068796.txt *.java f0905776.xml f1067014.csv f1067046.csv f1067056.csv f1067074.csv
Run Code Online (Sandbox Code Playgroud)

*.java如果我使用mvtar或类似的东西,该项目会产生问题,因为它实际上不是一个文件。有什么方法可以让我忽略任何实际上与文件不匹配的 glob?

cho*_*oba 8

设置nullglob选项:

shopt -s nullglob
Run Code Online (Sandbox Code Playgroud)