温馨提示×

如何自动清debian recycle

小樊
35
2026-09-16 10:10:58
栏目: 智能运维

在 Debian 里没有 Windows 那种“回收站(Recycle Bin)”机制,不过通常你说的“recycle”可能指下面几种情况之一。我分别说明如何自动清理


一、如果你说的是 GNOME / 桌面环境的“回收站”

Debian 桌面(如 GNOME)会把删除的文件放在:

~/.local/share/Trash/

手动清理

rm -rf ~/.local/share/Trash/*

自动清理(推荐用 cron)

例如:每天清理 7 天前的回收站文件

crontab -e

添加:

0 3 * * * find ~/.local/share/Trash -type f -mtime +7 -delete

⚠️ 注意:

  • 回收站里还有 files/info/ 两个目录
  • 更完整的方式:
0 3 * * * rm -rf ~/.local/share/Trash/files/* ~/.local/share/Trash/info/*

二、如果你说的是 rm 被 alias 到“回收脚本”

有些管理员会写:

alias rm='mv -t ~/.trash'

自动清理 ~/.trash

0 4 * * * find ~/.trash -mtime +14 -delete

三、如果你说的是系统临时文件(/tmp)

Debian 默认会自动清理 /tmp

相关服务:

systemctl status tmp.mount

规则由:

/etc/tmpfiles.d/
/usr/lib/tmpfiles.d/tmp.conf

示例(/etc/tmpfiles.d/tmp.conf):

d /tmp 1777 root root 10d

表示:10 天未访问的 /tmp 文件自动删除


四、如果你说的是“回收站”类似服务(如 Nextcloud / Samba)

Nextcloud

后台任务会自动清理回收站(可在管理面板设置保留天数)

Samba 回收站(vfs_recycle)

smb.conf 中:

recycle:keeptree = yes
recycle:repository = .recycle
recycle:maxsize = 0
recycle:exclude = *.tmp

可用 cron 定期清理:

find /srv/samba/.recycle -mtime +30 -delete

五、最推荐的做法(通用)

用 systemd timer(现代 Debian 推荐)

例如清理回收站:

~/.config/systemd/user/clean-trash.service
[Service]
ExecStart=/bin/sh -c 'rm -rf ~/.local/share/Trash/files/* ~/.local/share/Trash/info/*'
~/.config/systemd/user/clean-trash.timer
[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

启用:

systemctl --user enable --now clean-trash.timer

总结

场景 自动清理方式
桌面回收站 cron / systemd timer
自定义 rm find + cron
/tmp tmpfiles.d
Samba find + cron
Nextcloud 后台任务

如果你能告诉我:

  • 服务器还是桌面
  • 用的是 GNOME / KDE / 无界面
  • 是否是 Samba / Docker / 自定义 rm

我可以给你完全针对性的自动清理方案

0