Ubuntu 回收站定时清理的设置
一 原理与回收站路径
二 方案一 Cron 定时清理(推荐)
#!/usr/bin/env bash
TRASH="$HOME/.local/share/Trash"
rm -rf "$TRASH/files"/* "$TRASH/info"/*
#!/usr/bin/env bash
for u in /home/*; do
[[ -d "$u/.local/share/Trash/files" ]] || continue
rm -rf "$u/.local/share/Trash/files"/* "$u/.local/share/Trash/info"/*
done
chmod +x /path/to/clean-trash.sh
crontab -e
0 2 * * * /usr/bin/bash /path/to/clean-trash.sh
0 8 * * 1 /usr/bin/bash /path/to/clean-trash.sh
crontab -l
三 方案二 使用 autotrash 按时间或空间策略清理
sudo apt-get update
sudo apt-get install autotrash
autotrash -d 30
autotrash --max-free 10240 -d 7
crontab -e
0 3 * * * /usr/bin/autotrash -d 30
四 方案三 systemd 定时器(适合系统级或复杂逻辑)
sudo nano /etc/systemd/system/trash-cleaner.service
内容示例(清理所有用户的 files 与 info):[Unit]
Description=Trash Cleaner Service
[Service]
Type=oneshot
ExecStart=/usr/bin/find /home -path '*/.local/share/Trash/files' -type f -delete
ExecStart=/usr/bin/find /home -path '*/.local/share/Trash/info' -type f -delete
sudo nano /etc/systemd/system/trash-cleaner.timer
内容示例(每天 02:00 执行):[Unit]
Description=Run Trash Cleaner daily at 02:00
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now trash-cleaner.timer
sudo systemctl list-timers --all
五 注意事项与排错
journalctl -u trash-cleaner.timer)定位执行状况。