Linux回收站定时清理设置方法
Linux系统中,用户级回收站的默认路径通常为~/.local/share/Trash/,其中files/子目录存储实际删除的文件,info/子目录存储文件元数据(如删除时间、原路径)。部分桌面环境(如GNOME、KDE)的文件管理器会使用此路径,若自定义过回收站位置,需替换为实际路径。
rm命令+cron定时任务(简单直接)打开终端,输入crontab -e命令,进入crontab编辑模式(首次使用会提示选择编辑器,选nano或vim均可)。
在文件末尾添加一行,指定清理时间和命令。例如:
0 2 * * * rm -rf ~/.local/share/Trash/files/*0 3 * * 0 rm -rf ~/.local/share/Trash/files/*(0表示周日,*表示任意值)。按Ctrl+X组合键,再按Y确认保存,最后按Enter退出编辑器。cron会自动加载新任务。
trash-cli工具(更灵活,支持按天数清理)根据系统包管理器安装(需联网):
sudo apt install trash-clisudo yum install trash-clisudo dnf install trash-cli。创建脚本文件(如~/cleanup_trash.sh),内容如下(设置删除30天前的文件):
#!/bin/bash
# 设置回收站路径
TRASH_DIR="$HOME/.local/share/Trash/files"
# 删除30天前的文件
find "$TRASH_DIR" -type f -mtime +30 -exec rm -f {} \;
或直接使用trash-empty命令(更规范):
#!/bin/bash
# 清空超过30天的回收站文件
trash-empty 30
保存并退出编辑器。
在终端输入chmod +x ~/cleanup_trash.sh,使脚本可执行。
编辑crontab文件(crontab -e),添加以下内容(例如每天凌晨1点执行):
0 1 * * * /home/your_username/cleanup_trash.sh(替换为脚本实际路径)。
若需清理所有用户的回收站(如服务器环境),可创建系统级cron任务:
编辑/etc/cron.daily/empty-trash文件(若目录不存在,先运行sudo mkdir -p /etc/cron.daily):
#!/bin/bash
# 遍历所有用户的主目录,清理其回收站
for USER_HOME in /home/*; do
if [ -d "$USER_HOME/.local/share/Trash/files" ]; then
rm -rf "$USER_HOME/.local/share/Trash/files/*"
rm -rf "$USER_HOME/.local/share/Trash/info/*"
fi
done
赋予执行权限:sudo chmod +x /etc/cron.daily/empty-trash。
root权限)。TRASH_DIR变量或rm命令路径。rm -rf ~/.local/share/Trash/files/*或trash-empty 30),确认无误后再添加定时任务。