find 命令中 -prune 和 -delete 不兼容?

find 命令中 -prune 和 -delete 不兼容?

手册页find说:

   -prune True;  if  the file is a directory, do not descend into it. If -depth is 
          given, false; no effect.  Because -delete implies -depth, you cannot 
          usefully use -prune and -delete together.

最后一句是什么意思?无法有效地运行以下命令...

find /path/ -prune -type f -ctime +15 -delete

...查找并删除最后更改时间超过 15 天前的所有文件/path/ 但不在下面的子目录中 /path/?我认为这是一个完全有效的用例。

答案1

看起来问题是-prune如果-depth也使用的话是无效的并且-delete 暗示 -depth

至于你问的用例,我一直使用-maxdepth X.

例如

find /path/ -maxdepth 1 -type f -ctime +15 -delete

会做。

相关内容