温馨提示×

centos系统回收站使用指南

小樊
36
2025-11-16 00:47:52
栏目: 智能运维

CentOS 回收站使用指南

一 概览与适用场景

  • CentOS 服务器版默认没有统一的图形化回收站,命令行中的 rm 会直接删除文件。为降低误删风险,常用做法是基于用户目录 ~/.local/share/Trash(符合 FreeDesktop Trash 规范)或使用工具 trash-cli 来提供“可恢复删除”的能力;若使用 GNOME 桌面,也可使用 gvfs-trash。以下给出可直接落地的配置与使用步骤。

二 方法一 使用 trash-cli(推荐)

  • 安装
    • CentOS 7sudo yum install -y trash-cli
    • CentOS 8/Streamsudo dnf install -y trash-cli
  • 配置(可选)
    • 全局或用户级配置:/etc/trash.conf~/.config/trash/trash.conf
    • 常见可用项(不同版本支持度可能不同):
      • trash_dir 指定回收站根目录(默认按用户使用 ~/.local/share/Trash
      • trash_max_size / trash_max_files / trash_keep_days 控制容量与保留天数
  • 常用命令
    • 删除到回收站:trash <file_or_dir>
    • 列出回收站:trash-list
    • 按文件恢复:trash-restore(交互选择)
    • 清空回收站:trash-empty
    • 查看回收站元信息:trash-info <trashinfo_path>
  • 使用要点
    • 回收站按用户隔离,切换到某用户后仅能看到该用户的回收站内容。
    • 若系统或脚本中显式调用 /usr/bin/rm -f,将绕过回收站,请注意调用路径与别名设置。

三 方法二 自定义回收站脚本与别名(轻量可控)

  • 创建脚本(示例:~/bin/trash.sh
    • 作用:将删除的文件移动到 ~/.trash,并以时间戳避免重名;提供恢复与清空功能。
    • 内容示例:
      #!/usr/bin/env bash
      TRASH_DIR="$HOME/.trash"
      mkdir -p "$TRASH_DIR"
      
      usage() { echo "Usage: $0 file1 [file2 ...]"; exit 1; }
      
      [[ $# -eq 0 ]] && usage
      
      restore() {
        local item="$1"
        local base="${item##*/}"
        # 简单按前缀匹配恢复(可按需改进为更精确匹配)
        local found=("$TRASH_DIR/${base%.*}"*)
        [[ -e "${found[0]}" ]] && mv -i "${found[0]}" . || echo "未找到可恢复的: $base"
      }
      
      for FILE in "$@"; do
        [[ ! -e "$FILE" ]] && { echo "不存在: $FILE"; continue; }
        local ts=$(date +%Y%m%d_%H%M%S)
        local name=$(basename "$FILE")
        mv -i "$FILE" "$TRASH_DIR/${name%.*}-$ts${FILE##*.}"
      done
      
    • 赋权:chmod +x ~/bin/trash.sh
  • 配置别名(写入 ~/.bashrc
    alias rm='~/bin/trash.sh'
    alias rl='ls -la ~/.trash'
    alias ur='restore'   # 简化恢复:ur <deleted_file_basename>
    alias ct='rm -rf ~/.trash/* && echo "回收站已清空"'
    
    • 使配置生效:source ~/.bashrc
  • 使用
    • 删除:rm file.log
    • 查看:rl
    • 恢复:ur file.log(按时间戳匹配)
    • 清空:ct
  • 说明
    • 该方式完全由你掌控,可加入日志、按目录结构保留、交互确认等增强策略。

四 方法三 桌面环境 GNOME 的 gvfs-trash

  • 适用:已安装 GNOME 桌面或 gvfs 环境。
  • 安装:sudo yum install -y gvfs-trash
  • 使用
    • 删除到回收站:gvfs-trash <path>
    • 查看回收站内容:gvfs-list-recycle-bin
    • 清空回收站:gvfs-empty-trash
  • 说明
    • 回收站目录同样位于用户目录的 ~/.local/share/Trash,与 trash-cli 规范兼容。

五 维护与最佳实践

  • 定期清理
    • 按时间清理(示例:删除 7 天前的回收站内容)
      find ~/.local/share/Trash -mtime +7 -type f -delete
      
    • 加入 crontab(示例:每周六 00:00 清理)
      0 0 * * 6 find ~/.local/share/Trash -mtime +7 -type f -delete
      
  • 容量与保留策略
    • 使用 trash-cli 时,可在 /etc/trash.conf~/.config/trash/trash.conf 中设置如 trash_max_size / trash_max_files / trash_keep_days 等参数(以实际版本支持为准)。
  • 安全删除
    • 需要立即永久删除时,使用命令的绝对路径绕过别名:/usr/bin/rm -rf <path>
  • 权限与多用户
    • 回收站目录默认权限为仅用户可访问;在多用户或 root 场景下,请分别检查各自 ~/.local/share/Trash 目录,避免误删他人数据。

0