在Linux系统中,可以通过配置文件和脚本来实现回收站的有效期。以下是一个简单的示例,使用Bash脚本和inotifywait
工具来监控回收站目录,并在超过指定时间后自动删除文件。
首先,确保你的系统上安装了inotify-tools
包,它包含了inotifywait
工具。
sudo apt-get update
sudo apt-get install inotify-tools
创建一个名为trash_cleanup.sh
的脚本文件,并添加以下内容:
#!/bin/bash
# 回收站目录
TRASH_DIR="$HOME/.local/share/Trash/files"
# 有效期(以天为单位)
EXPIRATION_DAYS=7
# 获取当前日期的时间戳
CURRENT_TIMESTAMP=$(date +%s)
# 遍历回收站目录中的所有文件
for FILE_PATH in "$TRASH_DIR"/*; do
# 获取文件的最后修改时间戳
FILE_MODIFICATION_TIMESTAMP=$(stat -c %Y "$FILE_PATH")
# 计算文件的年龄(以秒为单位)
FILE_AGE=$((CURRENT_TIMESTAMP - FILE_MODIFICATION_TIMESTAMP))
# 如果文件的年龄大于有效期,则删除文件
if [ $FILE_AGE -gt $((EXPIRATION_DAYS * 86400)) ]; then
rm -rf "$FILE_PATH"
echo "Deleted expired file: $FILE_PATH"
fi
done
chmod +x trash_cleanup.sh
使用cron
来定期运行这个脚本。编辑当前用户的crontab
文件:
crontab -e
在打开的编辑器中添加以下行,以每分钟运行一次脚本:
* * * * * /path/to/trash_cleanup.sh
将/path/to/trash_cleanup.sh
替换为实际的脚本路径。
保存并退出编辑器。现在,cron
将会每分钟运行一次trash_cleanup.sh
脚本,删除回收站中超过有效期的文件。
EXPIRATION_DAYS
变量的值。通过以上步骤,你就可以在Linux系统中设置回收站的有效期了。