麒麟os回收站需定期清理以防磁盘占满,推荐用systemd timer每日03:15自动清空当前用户回收站,或用cron实现自定义频率及按天数保留策略;多用户环境下需root权限强制清理/data分区全局回收站。

麒麟OS系统中回收站长期不清理会导致磁盘空间持续被占用,尤其在频繁删除大文件后,~/.local/share/Trash/files目录可能堆积数GB数据却无人干预;必须通过可配置周期的自动化机制让系统定期执行彻底清空。
用systemd timer设置每日自动清空
该方法基于用户级systemd服务,在登录会话中静默运行,不依赖图形界面,且默认适配银河麒麟V10桌面环境。它会在每天固定时间触发trash-empty命令,仅作用于当前用户回收站,不会影响其他账户。
第一步:确认trash-cli已安装,执行which trash-empty;若无输出,先运行sudo apt install trash-cli安装。
第二步:创建用户级systemd配置目录(如不存在):mkdir -p ~/.config/systemd/user。
第三步:新建服务文件:nano ~/.config/systemd/user/trash-clean.service,填入以下内容:
[Unit]
Description=Auto clean user's trash
[Service]
Type=oneshot
ExecStart=/usr/bin/trash-empty
User=%i
第四步:新建定时器文件:nano ~/.config/systemd/user/trash-clean.timer,填入以下内容:
[Unit]
Description=Run trash-empty daily
[Timer]
OnCalendar=*-*-* 03:15:00
Persistent=true
[Install]
WantedBy=default.target
第五步:启用并启动定时器:systemctl --user daemon-reload && systemctl --user enable trash-clean.timer && systemctl --user start trash-clean.timer。这一步完成后,系统将在每天03:15自动清空当前用户的回收站。
用cron设置自定义频率清理
此方法更轻量,兼容所有麒麟OS桌面环境(包括DDE、GNOME、KDE),无需systemd用户实例,适合希望绕过复杂服务配置的用户。
方法一:直接编辑用户crontab
在终端中运行crontab -e,在打开的编辑器末尾添加一行:
15 3 * * * /usr/bin/trash-empty 2>/dev/null
该规则表示每天凌晨3:15执行一次清空操作。若需改为每周一上午9点执行,可写为0 9 * * 1 /usr/bin/trash-empty 2>/dev/null。
方法二:使用find命令实现按天数保留策略
创建脚本nano ~/bin/clean-trash-old.sh,填入:
#!/bin/bash
find ~/.local/share/Trash/files -type f -mtime +7 -delete
find ~/.local/share/Trash/info -name "*.trashinfo" -mtime +7 -delete
赋予执行权限:chmod +x ~/bin/clean-trash-old.sh。
再将脚本加入crontab:crontab -e → 添加0 4 * * * ~/bin/clean-trash-old.sh,即每天凌晨4点只清理7天前的回收站内容,保留近期误删文件的恢复窗口。
强制清空全局回收站(/data分区专用)
当系统配置了独立/data分区且启用了多用户回收站映射时,普通用户脚本无法触达真正的垃圾存储位置,必须使用root权限操作/data/.local/share/Trash-1000目录。该路径常见于长城世恒等国产硬件预装的麒麟OS系统。
第一步:确认/data分区是否挂载并存在回收站结构:ls -d /data/.local/share/Trash-1000 2>/dev/null || echo "路径不存在"。
第二步:创建root级清理脚本:sudo nano /usr/local/bin/force-clean-data-trash.sh,填入:
#!/bin/bash
rm -rf /data/.local/share/Trash-1000/files/*
rm -rf /data/.local/share/Trash-1000/info/*
第三步:赋予执行权限:sudo chmod +x /usr/local/bin/force-clean-data-trash.sh。
第四步:将脚本加入root crontab:sudo crontab -e → 添加0 2 * * 0 /usr/local/bin/force-clean-data-trash.sh,即每周日凌晨2点执行一次。
注意:执行前务必确认/data/.local/share/Trash-1000是当前系统的实际回收站路径,误删其他目录将导致不可逆数据丢失。











