CentOS自定义回收站实用方案
一、方案总览与选择
- trash-cli(推荐):命令行回收站,遵循 freedesktop.org 规范,支持跨挂载点、可恢复、可配置保留天数,适合服务器与终端环境。
- gvfs-trash(GNOME 桌面):与 GNOME 桌面回收站深度集成,图形化删除与恢复体验一致,适合带桌面的 CentOS。
- 自定义脚本 + 别名:轻量可控,完全自定义回收站目录与策略,适合无图形界面或特殊需求场景。
二、方案一 使用 trash-cli(推荐)
- 安装
- CentOS 7/8:sudo yum install -y trash-cli
- CentOS Stream 9/Fedora:sudo dnf install -y trash-cli
- 基本用法
- 删除:trash /path/to/file_or_dir
- 列表:trash-list
- 恢复:trash-restore(交互选择)
- 清空:trash-empty;按时间清理:trash-empty 7(删除 7 天前的项目)
- 自定义配置
- 配置路径:用户级 ~/.config/trash-cli/trash.conf,全局 /etc/trash-cli/trash.conf
- 常用参数示例(按需求启用):
- trash_dir = /opt/Trash(自定义回收站根目录)
- trash_max_file_size = 10485760(单个文件最大 10MB)
- trash_keep_days = 7(保留 7 天)
- 使用建议
- 将 rm 替换为 trash:echo ‘alias rm=trash’ >> ~/.bashrc && source ~/.bashrc
- 定时清理(系统级):创建 systemd 定时器,每天清理 7 天前项目
- /usr/bin/trash-empty --age 7d
- 注意:网络文件系统(如部分 NFS)或特殊设备上的文件可能不完全支持回收站行为。
三、方案二 使用 gvfs-trash(GNOME 桌面)
- 安装:sudo yum install -y gvfs-trash
- 基本用法
- 删除:gvfs-trash /path/to/file_or_dir
- 列表:gvfs-trash-list
- 清空:gvfs-trash-empty
- 特点
- 与 GNOME 回收站一致,文件默认进入 ~/.local/share/Trash/files 与 info,图形化“回收站/还原”可直接使用。
四、方案三 自定义脚本与别名(轻量可控)
- 创建回收站目录
- 配置别名与函数(写入 ~/.bashrc 或 /root/.bashrc)
- alias rm=‘~/.trash.sh’
- 脚本示例(~/.trash.sh):
- #!/bin/bash
TRASH=“$HOME/.trash”
mkdir -p “$TRASH”
[ $# -eq 0 ] && { echo “Usage: $0 file_or_dir”; exit 1; }
for f in “$@”; do
[ -e “$f” ] || { echo “‘$f’ not exist”; continue; }
ts=$(date +%Y%m%d%H%M%S)
bn=$(basename “$f”)
mv -i “$f” “$TRASH/${bn}-${ts}”
done
- 赋予执行权限:chmod +x ~/.trash.sh
- 便捷命令(可选):
- alias rlist=‘ls ~/.trash’
- alias rclean=‘read -p "Clear trash? (y/n) "; [[ $REPLY == y ]] && rm -rf ~/.trash/*’
- 使用
- 删除:rm file
- 查看:rlist
- 清空:rclean
- 说明
- 该方式简单直观,但无内建保留天数与容量上限,建议配合 cron 定期清理。
五、策略与维护要点
- 容量与保留
- 图形化桌面(如 GNOME)可在“设置 → 存储 → 回收站”配置每个文件系统的回收站上限。
- 命令行推荐用 trash-cli 的 trash_keep_days 或定时任务控制保留期。
- 自动清理
- 定时任务示例(每天 2 点清理 30 天前):0 2 * * * /usr/bin/trash-empty 30
- 或用 systemd 定时器执行:/usr/bin/trash-empty --age 7d
- 多用户与目录
- 全局回收站:/opt/Trash(需 root 维护权限)
- 用户回收站:~/.local/share/Trash(遵循 XDG 规范)
- 安全与限制
- 回收站文件仍占用原磁盘空间,重要数据请及时备份。
- 网络挂载或特殊设备可能不支持回收站,删除时可能直接永久删除。
- 不建议直接覆盖系统 /bin/rm;如需更安全,可将 rm 别名为 trash,保留 \rm 执行真正删除。