我正在开发一个项目来自动删除超过一天的特定目录。我有以下代码工作:
find Directory/ -type d -name "Directory.To.Delete.*" -mtime +1 -exec rm -rf {} \;
它运行良好并按预期删除目录(和内容),但它总是以错误结束:
查找:无法 chdir 到 Directory/ :没有这样的文件或目录
有没有办法在不遇到此错误的情况下运行此代码?我不明白为什么此代码在删除目录后尝试 chdir。
我正在开发一个项目来自动删除超过一天的特定目录。我有以下代码工作:
find Directory/ -type d -name "Directory.To.Delete.*" -mtime +1 -exec rm -rf {} \;
它运行良好并按预期删除目录(和内容),但它总是以错误结束:
查找:无法 chdir 到 Directory/ :没有这样的文件或目录
有没有办法在不遇到此错误的情况下运行此代码?我不明白为什么此代码在删除目录后尝试 chdir。
-prune
在前面添加-exec
;将停止find
输入匹配目录:
.... -mtime +1 -prune -exec ...
在 -type d 之前添加 -depth 也会阻止 find 进入匹配的目录。
# mkdir 1
# mkdir 2
# touch -d yesterday 1
# find . -depth -type d -mtime +0 -exec rm -rf {} \;
# ls
2
从男人找到:
-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.