trash-cli工具(推荐,简单易用)trash-cli是一个命令行工具,可模拟Windows回收站功能,并通过脚本实现容量限制。
trash-clisudo apt-get install trash-cli
~/cleanup_trash.sh),内容如下(设置最大容量为100MB,可根据需求调整):#!/bin/bash
TRASH_DIR="$HOME/.local/share/Trash/files" # 回收站文件目录
MAX_SIZE=$((100*1024*1024)) # 最大容量(100MB,单位:字节)
# 获取当前回收站大小
CURRENT_SIZE=$(du -sb "$TRASH_DIR" | awk '{print $1}')
# 若超过限制,删除最旧的文件
if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; then
echo "回收站大小超过限制(${MAX_SIZE/1024/1024}MB),开始清理..."
find "$TRASH_DIR" -type f -printf '%T@ %p\n' | sort -n | cut -d' ' -f2- | head -n 10 | xargs rm -f # 删除最旧的10个文件(可根据需求调整数量)
fi
chmod +x ~/cleanup_trash.sh
crontab -e,添加以下行(每小时检查一次):0 * * * * ~/cleanup_trash.sh >> ~/trash_cleanup.log 2>&1
此脚本会每小时检查回收站大小,若超过100MB则删除最旧的10个文件,避免回收站无限增长。quota工具(系统级配额限制)quota可限制用户对回收站所在分区的磁盘使用量,间接控制回收站容量(适用于需要严格限制的场景)。
quota工具sudo apt-get install quota
/etc/fstab文件/etc/fstab(需root权限),在回收站所在分区的挂载选项中添加usrquota(用户配额)和grpquota(组配额):sudo nano /etc/fstab
找到类似/dev/sda1 /home ext4 defaults 0 2的行,修改为:/dev/sda1 /home ext4 defaults,usrquota,grpquota 0 2
sudo mount -o remount /home
sudo quotacheck -cum /home
sudo quotaon -vug /home
edquota命令为用户设置软限制(超过会警告)和硬限制(超过无法继续写入):sudo edquota -u your_username # 替换为你的用户名
在编辑器中修改以下参数(单位:KB,示例设置为1GB软限制、1.2GB硬限制):Disk quotas for user your_username (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 102400 1048576 1258291 100 200 300
保存退出后,配额生效。若不想使用额外工具,可通过cron定期清理回收站。
~/cleanup_trash.sh,内容如下(每天清理超过7天的文件):#!/bin/bash
TRASH_DIR="$HOME/.local/share/Trash/files"
find "$TRASH_DIR" -type f -mtime +7 -delete # 删除7天前的文件
find "$TRASH_DIR" -type f -mtime +7 -delete # 同时删除对应的info文件(可选)
chmod +x ~/cleanup_trash.sh
crontab -e,添加以下行(每天凌晨2点执行):0 2 * * * ~/cleanup_trash.sh
此方法可定期清空回收站,避免其占用过多空间,但无动态容量限制。~/.local/share/Trash/files(隐藏文件夹),清理脚本需指向此目录。~/cleanup_trash.sh),确认不会误删文件。sudo运行脚本。以上方法可根据需求选择,trash-cli+定时任务适合个人用户,quota适合需要严格限制的场景,手动管理适合简单需求。