我觉得这个shell脚本需要重构:
find -name *.java >> filelist.txt && find -name *.ftl >> filelist.txt && find -name *.xhtml >> filelist.txt && find -name *.html >> filelist.txt && find -name *.jrxml >> filelist.txt && find -name *.xml >> filelist.txt
它以递归方式搜索某些文件类型。 你会如何最小化这段代码?
感谢。
答案 0 :(得分:6)
您可以将表达式与-o
标志组合在一起,因此它变为:
find -name '*.java' -o -name '*.xhtml' -o -name '*.jrxml' >> filelist.txt
等等您的其他文件类型。
注意:引用通配符'*.java'
而不是*.java
,否则请引用
risk *.java
扩展到当前目录中的.java文件。
答案 1 :(得分:4)
如果filelist.txt
中文件名的顺序无关紧要,您可以使用-o
运算符(这意味着"或"),如下所示:
find -name "*.java" -o -name "*.ftl" ... >> filelist.txt
请注意,这会改变filelist.txt
中文件的顺序,与命令一样,所有*.java
文件都是第一个,然后是所有*.ftl
个文件等。
答案 2 :(得分:-2)
尝试此命令:
for a in *.java *.xhtml *.jrxml; do find -name ${a} >> ; done