我有一个问题,在 find 中使用“-o”选项来查找多个扩展名。

find "DIRECTORY" -type f -name \*.jpg -o -name \*.html -mtime +95

在上面我想删除超过一定时间的两个扩展名的所有文件。
通过使用 -o 列出多个名称,-mtime 仅适用于第二个还是旧的 jpg 也被排除在外?

谢谢

最佳答案

你可以用括号解决这个问题:

find "DIRECTORY" -type f \( -name \*.jpg -o -name \*.html \) -mtime +95
find 运算符按优先顺序计算。从手册:
 ( expr )
          Force precedence.  Since parentheses are special  to  the  shell,
          you  will  normally  need to quote them.  Many of the examples in
          this manual page use  backslashes  for  this  purpose:  `\(...\)'
          instead of `(...)'.

 expr1 expr2
          Two expressions in a row are taken to be joined with  an  implied
          "and"; expr2 is not evaluated if expr1 is false.

 expr1 -o expr2
          Or; expr2 is not evaluated if expr1 is true.

关于linux - 使用 find 命令删除超过特定时间的多个扩展,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20617513/

10-16 11:28