我运行 Ubuntu 14.04 作为 Windows 客户端的文件服务器。客户端已映射网络共享文件夹以供使用。当他们从该文件夹中删除文件时,文件将进入“.recycle”。我想删除超过 x 天的文件。我使用了 autotrash 命令:
autotrash -d 30 -T /home/etc/.recycle
但它告诉我 .recycle 不包含信息文件:
Can not find trash information directory. Make sure you have at least GNOME 2.24
我正在看:/home/etc/.recycle/info
安装了最新的 Gnome,结果相同。我知道当文件移入 .recycle 时,应用程序无法读取信息。我可以使用命令:find /path/to/files* -mtime +5 -exec rm {} \;
但当文件移入 .recycle 时,它们会保留上次修改日期,而不是移入文件夹时的日期。
我可以创建信息文件吗?有什么解决方案可以删除文件移动到某个文件夹后 x 天以前的文件吗?
提前致谢。
答案1
您可以将以下脚本设置为每 X 天运行一次(使用cron
):
#!/bin/bash
cd /home/etc/recycle_old #Deletes old trash
rm -r ./*
cd /home/etc
mv -r ./recycle ./recycle_old #Moves new trash to "old"-folder
它的工作原理如下:
1.有 2 个文件夹recycle
(已经给出)用于存储“最近”删除的文件,以及recycle_old
用于存储“旧”文件。
2.每隔 X 天,所有内容recycle_old
都会被删除,并替换为“最近”的内容recycle
如果要删除超过一个月的文件,只需将脚本移至/etc/cron.monthly
。如果您需要更具体的信息,请查看如何设置 cronjob。