Ubuntu回收站的默认容量特性
Ubuntu的回收站(位于~/.local/share/Trash/files/目录)没有固定的最大容量限制,其可存储的文件大小和数量取决于所在分区的剩余磁盘空间。当回收站中的文件总大小接近分区剩余空间时,系统将无法继续删除文件(提示“磁盘空间不足”)。
设置回收站容量限制的常见方法
若需限制回收站的大小,避免占用过多磁盘空间,可通过以下方式实现:
trash-cli是命令行风格的回收站管理工具,可通过配置文件直接设置回收站的最大容量。
sudo apt-get install trash-cli # Ubuntu/Debian系统
~/.config/trash.conf文件(若不存在则创建),添加以下内容:[Trash]
max_size = 100M # 设置回收站最大容量(如100MB,可根据需求调整)
保存后,trash-cli会自动遵守该限制,当回收站大小超过阈值时,新删除的文件会覆盖最旧的文件。quota工具可限制用户或分区的磁盘使用量,间接控制回收站的大小(适用于需要严格管理磁盘空间的场景)。
sudo apt-get 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 # 启动quota服务
edquota命令为用户设置软限制(soft limit,超过后会警告)和硬限制(hard limit,绝对上限):sudo edquota -u username # 替换为实际用户名
在编辑器中修改blocks字段(单位为KB),例如:Disk quotas for user username (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/sda1 102400 204800 262144 1000 2000 2500
其中,soft为警告阈值(如200MB),hard为绝对上限(如250MB)。通过脚本定期检查回收站大小,超过阈值时自动删除旧文件(适用于不想安装额外工具的场景)。
/usr/local/bin/clean_trash.sh):#!/bin/bash
RECYCLE_BIN="$HOME/.local/share/Trash/files"
MAX_SIZE=100M # 设置最大容量(如100MB)
CURRENT_SIZE=$(du -sm "$RECYCLE_BIN" | cut -f1)
if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; then
# 删除最旧的文件(保留最新的10个文件)
find "$RECYCLE_BIN" -type f -printf '%T@ %p\n' | sort -n | cut -d ' ' -f 2- | head -n -10 | xargs rm -rf
echo "$(date): 回收站已清理(超过${MAX_SIZE}限制)" >> /var/log/trash_clean.log
fi
赋予脚本执行权限:chmod +x /usr/local/bin/clean_trash.sh
crontab -e
添加以下内容(每天凌晨2点执行清理):0 2 * * * /usr/local/bin/clean_trash.sh
保存后,脚本会定期运行,确保回收站不会超过设定大小。注意事项
xfs_quota工具(方法类似)。