Ubuntu Recycle如何设置定时清理任务
导读:Ubuntu 回收站定时清理的设置 一 原理与回收站路径 Ubuntu 的回收站由 GNOME 管理,文件实际位于用户主目录的 ~/.local/share/Trash/,常用子目录为 files(存放文件)与 info(存放元数据)。图...
Ubuntu 回收站定时清理的设置
一 原理与回收站路径
- Ubuntu 的回收站由 GNOME 管理,文件实际位于用户主目录的 ~/.local/share/Trash/,常用子目录为 files(存放文件)与 info(存放元数据)。图形化的“回收站/回收站图标”并不会自动清空,需要借助脚本与定时任务实现自动清理。
二 方案一 Cron 定时清理(推荐)
- 1)创建清理脚本(更安全,便于扩展)
- 示例脚本:
- 仅当前用户回收站:
#!/usr/bin/env bash TRASH="$HOME/.local/share/Trash" rm -rf "$TRASH/files"/* "$TRASH/info"/* - 所有用户回收站(需 sudo,谨慎):
#!/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
- 示例脚本:
- 2)添加到当前用户的定时任务
- 编辑:
crontab -e - 常用时间示例(每天凌晨 2:00 清空当前用户回收站):
0 2 * * * /usr/bin/bash /path/to/clean-trash.sh - 其他示例(每周一 08:00 清空):
0 8 * * 1 /usr/bin/bash /path/to/clean-trash.sh - 查看任务:
crontab -l
- 编辑:
- 3)说明
- 使用脚本可一次性清理 files 与 info,避免残留元数据导致回收站显示异常;如需清理所有用户,脚本需以 sudo 运行,并在 sudoers 中配置免密或采用 root 的 crontab。
三 方案二 使用 autotrash 按时间或空间策略清理
- 安装:
sudo apt-get update sudo apt-get install autotrash - 常用用法
- 删除回收站中超过 30 天的文件(当前用户):
autotrash -d 30 - 当可用空间低于 10GB 时,删除最早的文件(至少保留最近 7 天的):
autotrash --max-free 10240 -d 7 - 定时执行(例如每天 03:00 运行):
crontab -e 0 3 * * * /usr/bin/autotrash -d 30
- 删除回收站中超过 30 天的文件(当前用户):
- 说明
- autotrash 仅操作当前用户的回收站,策略更灵活,适合“按天/按剩余空间”的自动清理需求。
四 方案三 systemd 定时器(适合系统级或复杂逻辑)
- 1)创建一次性服务
内容示例(清理所有用户的 files 与 info):sudo nano /etc/systemd/system/trash-cleaner.service[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 - 2)创建定时器
内容示例(每天 02:00 执行):sudo nano /etc/systemd/system/trash-cleaner.timer[Unit] Description=Run Trash Cleaner daily at 02:00 [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target - 3)启用与启动
sudo systemctl daemon-reload sudo systemctl enable --now trash-cleaner.timer sudo systemctl list-timers --all - 说明
- systemd 方式便于集中管理、日志与依赖,适合需要更复杂逻辑或系统范围清理的场景。
五 注意事项与排错
- 路径正确性:GNOME 回收站为 ~/.local/share/Trash/files 与 ~/.local/share/Trash/info;若使用其他桌面环境或自定义位置,请先确认实际路径。
- 权限与安全:清理所有用户回收站需 root 权限;脚本与命令务必先手动测试,避免误删。
- 定时任务调试:可临时将时间设为“几分钟后”验证;使用绝对路径(如 /usr/bin/rm、/usr/bin/bash)减少环境变量差异带来的问题;查看日志(如
journalctl -u trash-cleaner.timer)定位执行状况。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Recycle如何设置定时清理任务
本文地址: https://pptw.com/jishu/758755.html
