温馨提示×

Linux Recycle:如何设置回收站大小

小樊
39
2025-11-19 16:36:45
栏目: 智能运维

Linux 回收站容量设置指南

前置说明

  • Linux 没有统一的系统级回收站,容量限制通常由具体的桌面环境(如 GNOME、KDE、Xfce)或命令行工具(如 trash-cli)控制。
  • 常见回收站目录为:~/.local/share/Trash/files(文件)与 ~/.local/share/Trash/info(元数据)。命令行删除请用 trash 命令,避免直接用 rm -rf 绕过回收站。

桌面环境设置

  • GNOME Files(Nautilus)
    • 打开:编辑 → 首选项 → 行为,在“回收站”处可设置最大大小与“删除时移动到回收站”等选项(不同版本界面可能略有差异)。
  • KDE Dolphin
    • 打开:设置 → 配置 Dolphin → 回收站,可设置最大大小自动清空策略
  • Xfce Thunar
    • 默认不提供容量上限设置;可通过自定义动作实现清空等功能,例如命令:thunar --trash-empty

命令行工具 trash-cli 设置容量

  • 安装
    • Debian/Ubuntu:sudo apt-get install trash-cli
    • RHEL/CentOS:sudo yum install trash-cli
    • Fedora:sudo dnf install trash-cli
  • 容量限制与清理
    • 多数发行版的 trash-cli 不提供内置“最大容量”配置项;可通过配置文件或脚本实现限制与自动清理。
    • 示例思路(按“最旧优先”清理,阈值示例为 100MB):
      • 脚本示例(保存为 clean_trash.sh):
        #!/usr/bin/env bash
        TRASH="$HOME/.local/share/Trash/files"
        MAX_BYTES=$((100 * 1024 * 1024))  # 100MB
        
        if [[ ! -d "$TRASH" ]]; then
          echo "Trash dir not found: $TRASH"
          exit 0
        fi
        
        cur=$(du -sb "$TRASH" 2>/dev/null | awk '{print $1}')
        if (( cur > MAX_BYTES )); then
          # 删除最旧的文件,直到低于阈值(按修改时间升序)
          find "$TRASH" -mindepth 1 -printf '%T@ %p\n' | sort -n | cut -d' ' -f2- | while IFS= read -r f; do
            rm -rf "$f"
            cur=$(du -sb "$TRASH" 2>/dev/null | awk '{print $1}')
            (( cur <= MAX_BYTES )) && break
          done
        fi
        
      • 赋权并加入定时任务(例如每 6 小时执行一次):
        chmod +x clean_trash.sh
        crontab -e
        # 添加:
        0 */6 * * * /path/to/clean_trash.sh
        
    • 常用命令
      • 删除到回收站:trash <文件或目录>
      • 清空回收站:trash-empty
      • 查看回收站占用:du -sh ~/.local/share/Trash/files
      • 查看磁盘空间:df -h

系统级配额方案(面向分区/用户)

  • 若需对“回收站所在分区”或“用户目录”进行硬限制,可使用 磁盘配额(quota)
    • 安装:sudo apt-get install quotasudo yum install quota
    • /etc/fstab 为目标分区添加:usrquota,grpquota
      • 示例:/dev/sda1 /home ext4 defaults,usrquota,grpquota 1 2
    • 重新挂载:sudo mount -o remount /home
    • 初始化并启用配额:
      • sudo quotacheck -cum /home
      • sudo quotaon -vug /home
    • 为用户设置配额:sudo edquota -u <用户名>
  • 说明:配额是分区/用户级限制,并非“回收站应用级”容量;当配额触发时,写入(含回收站写入)会失败,需要清理或扩容。

0