删除 dir 中的文件但排除 1 个子目录
我有一个目录,里面充满了许多 htm 报告,我将这些报告保留了 30 天,并通过 cron 删除旧的报告,但有一个子目录我想保留更长时间。这是我在 cron 中所做的一行,但我如何告诉它保留一个子目录。
5 0 * * * find /var/www -name "*.htm*" -type f -mtime +30 -exec rm -f {} \;
非常感谢任何帮助!
I have a dir that is full of many htm reports that I keep around for 30 days and delete old ones via a cron, but there is one sub-dir I would like to keep longer. So this is the line I made in the cron, but how do I tell it to leave one sub-dir alone.
5 0 * * * find /var/www -name "*.htm*" -type f -mtime +30 -exec rm -f {} \;
Any help is greatly appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
-prune
来防止进入符合某些条件的目录。Use
-prune
to prevent going into a directory that matches some conditions.除了下面的建议之外,建议在 cron 中使用完整路径。
还可以使用
find
选项-delete
代替-exec rm -f {} \;
。这样比较安全一些。In addition to suggestion below, suggesting to use full path in
cron
.Also to use
find
option-delete
in-place of-exec rm -f {} \;
. It is somewhat safer.