温馨提示×

CentOS如何自定义回收站

小樊
31
2025-12-27 10:19:32
栏目: 智能运维

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/filesinfo,图形化“回收站/还原”可直接使用。

四、方案三 自定义脚本与别名(轻量可控)

  • 创建回收站目录
    • mkdir -p ~/.trash
  • 配置别名与函数(写入 ~/.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-clitrash_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 执行真正删除。

0