如果一个文件夹超过一天,我希望能够在我的主机上删除它及其内容。问题是我不知道如何使用Linux Cron Job来实现这一点。我已经查看了谷歌,但没有找到相关的信息。我认为这是一个相当简单的问题,请帮帮我。谢谢。
如果一个文件夹超过一天,我希望能够在我的主机上删除它及其内容。问题是我不知道如何使用Linux Cron Job来实现这一点。我已经查看了谷歌,但没有找到相关的信息。我认为这是一个相当简单的问题,请帮帮我。谢谢。
find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +
但是要小心,先在之外测试一下,不要带上-exec
参数,以免误删其他文件。
+1
部分吗?另外,这是在 Web 服务器上运行的。 - Joe Scottopublic_html/website/uploads
吗? - Joe Scottoman find
中读取相关信息。或者访问这个网站:http://www.linuxmanpages.com/man1/find.1.php - janos首先查看将要被删除的文件:
find /path/to/dir -type d -mtime +1 -print
当准备好执行时:
find /path/to/dir -type d -mtime +1 -print0 | xargs -0 rm -r
我猜你想删除一个文件夹及其所有内容,只要该文件夹中最新的文件在过去24小时内没有被更改。
这里有一个解决方案,可能不是最优雅的:
首先,使用此命令删除所有修改时间戳早于24小时的文件:
find /path/to/the/folder -type f -mtime +0 -print0 | xargs -0 rm
然后,尝试删除您的文件夹中的所有文件夹,包括该文件夹本身:
find /path/to/the/folder -depth -type d -print0 | xargs -0 rmdir
这将仅删除不包含任何文件的文件夹。也就是说,如果在第一步之后仍存在文件(因为它们的修改时间戳不早于24小时),则您的文件夹(可能带有子文件夹)将保留。如果cronjob重复运行,则在某个时刻 - 一旦您的文件夹中没有比24小时更年轻的文件,那么您的文件夹及其所有内容都将被删除。
您可以按以下方式将其放入文件/etc/cron.d/folder-cleanup中:
*/5 * * * * root find /path/to/the/folder -type f -mtime +0 -print0 | xargs -0 rm ; find /path/to/the/folder -depth -type d -print0 | xargs -0 rmdir
通过这种方式,您的清理进程将每5分钟运行一次。
这种方法的缺点是您的文件夹会逐步消失。我不确定这是否符合您的需求。
find: /public_html/kronofiles.com/uploads/1/': 没有那个文件或目录 rmdir: 缺失操作数 尝试'rmdir --help'以获取更多信息。
- Joe Scottofind /public_html/kronofiles.com/uploads/1/
并将输出粘贴到 http://pastebin.com/ 上,然后告诉我 Pastebin 链接吗? - Manuel Kießling我有一个略微不同的建议,可能会对其他人有用。我想清理我的~/Downloads文件夹中超过1天的文件和目录,但我想将它们发送到垃圾箱而不是永久删除。我希望在每次重启时自动清空垃圾箱,间隔时间为180天。
用户:crontab -e
:
0 0 * * * find /home/username/Downloads -mindepth 1 -mtime +1 -exec gio trash {} \;
管理员:sudo crontab -e
:
@reboot find /home/username/.local/share/Trash/expunged/ -type f -mtime +180 -exec rm {} \;
@reboot find /home/username/.local/share/Trash/files/ -type f -mtime +180 -exec rm {} \;
@reboot find /home/username/.local/share/Trash/info/ -type f -mtime +180 -exec rm {} \;
-type d
而不是-type f
。底线是,您正在查看find -mtime ...
。 - paxdiablofind /path/to/files* -type d -mtime +5 -exec rm {} \;
,这会删除文件夹及其内容吗? - Joe Scottorm -rf
。 - paxdiablo