银河麒麟V10需手动配置关机自动清空回收站,推荐使用systemd关机服务:创建清理脚本、配置clear-trash-before-shutdown.service并启用,确保关机前删除$HOME/.local/share/Trash/files及info目录内容。

如果您在使用银河麒麟V10操作系统时希望在每次关机前自动清空回收站,以释放磁盘空间并避免敏感文件残留,则需通过系统级服务机制实现。该行为并非系统默认功能,必须手动配置关机触发的清理动作。以下是多种可行方案:
一、配置systemd关机服务执行回收站清理
该方法利用systemd的Beforeshutdown.target,在系统进入关机流程前调用脚本清空当前用户回收站,具备高可控性与可审计性。
1、创建清理脚本:使用文本编辑器新建文件 /usr/local/bin/clear-trash-on-shutdown.sh,写入以下内容:
#!/bin/bash
if [ -d "$HOME/.local/share/Trash/files" ]; then
rm -rf "$HOME/.local/share/Trash/files"/*
rm -rf "$HOME/.local/share/Trash/info"/*
fi
2、赋予执行权限:运行命令 sudo chmod +x /usr/local/bin/clear-trash-on-shutdown.sh。
3、创建systemd服务文件:新建 /etc/systemd/system/clear-trash-before-shutdown.service,内容如下:
[Unit]
Description=Clear user trash before shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target
[Service]
Type=oneshot
User=your_username
ExecStart=/usr/local/bin/clear-trash-on-shutdown.sh
RemainAfterExit=yes
[Install]
WantedBy=halt.target reboot.target shutdown.target
4、启用服务:执行 sudo systemctl daemon-reload 后,运行 sudo systemctl enable clear-trash-before-shutdown.service。
二、通过桌面环境会话钩子实现(适用于KDE Plasma)
该方法依赖KDE的关机前执行机制,在用户会话层面触发清理,无需root权限,但仅对KDE桌面有效。
1、创建关机脚本:在 ~/.config/plasma-workspace/shutdown/ 目录下新建文件 clear-trash.sh,内容为:
#!/bin/bash
rm -rf "$HOME/.local/share/Trash/files"/* 2>/dev/null
rm -rf "$HOME/.local/share/Trash/info"/* 2>/dev/null
2、设置可执行权限:运行 chmod +x ~/.config/plasma-workspace/shutdown/clear-trash.sh。
3、确认目录存在:若 ~/.config/plasma-workspace/shutdown/ 不存在,需手动创建该路径。
三、注入systemd用户级定时器模拟关机前触发
该方法不直接监听关机事件,而是通过高频检查系统状态,在检测到关机信号后立即执行清理,适合无法修改systemd系统服务的受限环境。
1、创建状态检测脚本:新建 /home/username/bin/check-shutdown-and-clear.sh,内容包含:
#!/bin/bash
if systemctl is-system-running | grep -q "stopping\|stopping\|degraded"; then
rm -rf "$HOME/.local/share/Trash/files"/* 2>/dev/null
rm -rf "$HOME/.local/share/Trash/info"/* 2>/dev/null
exit 0
fi
2、创建用户级timer:在 ~/.config/systemd/user/ 下新建 clear-trash-on-shutdown.timer 和同名 .service 文件,其中timer内容为:
[Unit]
Description=Check shutdown state and clear trash
[Timer]
OnUnitActiveSec=10s
OnBootSec=30s
[Install]
WantedBy=default.target
3、启用用户服务:运行 systemctl --user daemon-reload,再执行 systemctl --user enable --now clear-trash-on-shutdown.timer。
四、修改挂载点属性强制回收站落盘并统一清理
该方法通过将回收站目录绑定挂载至持久化分区,使清空操作可集中管控,并配合关机脚本统一处理,规避多用户路径差异问题。
1、确认数据盘挂载位置:运行 lsblk -f | grep -E "(data|DATA)",获取如 /dev/sda2 类设备标识。
2、在数据盘根目录创建统一回收站:执行 sudo mkdir -p /data/.Trash-1000/{files,info,expunged}。
3、绑定挂载原回收站路径:添加行 /data/.Trash-1000 /home/username/.local/share/Trash none bind 0 0 至 /etc/fstab,随后运行 sudo mount -a 生效。
4、在前述任一systemd关机服务中,将清理目标改为 /data/.Trash-1000/files 及其子目录。
五、使用BleachBit命令行模式集成关机流程
该方法复用已安装的BleachBit工具,通过其CLI接口调用标准回收站清理逻辑,确保兼容性与安全性,适用于已部署BleachBit的系统。
1、确认BleachBit CLI可用:运行 bleachbit --version 验证安装状态。
2、测试命令有效性:执行 bleachbit --clean trash 查看是否成功清空当前用户回收站。
3、将该命令嵌入systemd关机服务的 ExecStart= 行,例如:
ExecStart=/usr/bin/bleachbit --clean trash
4、确保BleachBit以用户身份运行:在service文件[Unit]段添加 User=your_username,并在[Service]段指定 Environment=DISPLAY=:0(如需GUI上下文)。

















