我想找到一个目录中至少30天没有修改过并且以.xml
或结尾的所有文件.out
。这是我尝试拼凑一些参考文献来构建正确的find
语法:
find . -mtime +30 -type f / (-name "*.xml -o -name "*.out" ) / -print
我越来越
-bash: syntax error near unexpected token '('
我的语法中缺少什么?
答案1
你快到了!这有效:
find . -mtime +30 -type f \( -name \*.xml -o -name \*.out \)
你的/ (
变成\(
(转义的左括号;因为你发现 shell 会进行(
特殊处理,所以需要用 转义\
);其实也) /
应该如此\)
。名称需要*
与以给定扩展名结尾的任何内容匹配,并且还需要转义,因此".xml"
(我添加了缺少的结束引号)变为\*.xml
或"*.xml"
。
最后-print
可以删除,因为这是find
默认操作。