这是最简单直观的方法,适合大多数桌面用户。
trash-cli工具+定时任务(命令行方案)若需更灵活的控制(如按文件数量或精确容量清理),可使用trash-cli工具配合cron定时任务。
trash-cli:sudo apt update && sudo apt install trash-cli
/usr/local/bin/clean_trash.sh):#!/bin/bash
TRASH_DIR="$HOME/.local/share/Trash/files" # 默认回收站路径
MAX_SIZE=$((10 * 1024 * 1024)) # 10MB(单位:字节,可根据需求调整)
CURRENT_SIZE=$(du -sb "$TRASH_DIR" | awk '{print $1}')
if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; then
# 删除最旧的文件(按修改时间排序)
find "$TRASH_DIR" -type f -printf '%T@ %p\n' | sort -n | cut -d' ' -f2- | head -n 5 | xargs rm -f
echo "$(date): 清理回收站,删除了5个旧文件" >> /var/log/trash_clean.log
fi
注:
head -n 5表示每次删除5个最旧文件,可根据磁盘空间调整;MAX_SIZE可改为104857600(100MB)等值。
sudo chmod +x /usr/local/bin/clean_trash.sh
cron定时任务(每小时检查一次):crontab -e
添加以下行:0 * * * * /usr/local/bin/clean_trash.sh
quota工具(系统级配额管理)若需要对特定用户或组设置全局回收站容量限制(影响所有用户的回收站),可使用quota工具。
quota:sudo apt update && sudo apt install quota
/etc/fstab文件(如/home分区),添加usrquota选项:/dev/sda1 /home ext4 defaults,usrquota 1 2
保存后重新挂载分区:sudo mount -o remount /home
sudo quotacheck -cum /home
quota服务:sudo quotaon -vug /home
user1):sudo edquota -u user1
在编辑器中设置软限制(soft limit,超过会有警告)和硬限制(hard limit,超过无法继续写入):Disk quotas for user user1 (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 102400 51200 102400 1000 500 1000
注:
blocks单位为KB(如51200KB=50MB),inodes为文件数量限制。
quota -u user1查看自己的配额使用情况。trash-cli+cron方法:适合需要自定义清理逻辑的用户(如按文件数量清理),但需手动维护脚本;quota方法:适合系统管理员,可统一管理所有用户的回收站容量,但配置较复杂;~/.local/share/Trash/files,修改前请备份重要数据。