CentOS设置Recycle(回收站)的常见方法
CentOS系统默认未启用图形化回收站功能,但可通过以下方法实现类似效果,保障数据安全:
trash-cli是命令行工具,可将文件移动至回收站而非直接删除,支持设置大小、保留时间等策略。
sudo yum install trash-cli。trash /path/to/file_or_directory(替代原生rm命令);trash-list;trash-empty(可指定天数,如trash-empty 7清理7天前的文件);trash-restore(按提示选择需恢复的文件)。/etc/trash.conf(全局)或~/.config/trash.conf(用户级),调整以下参数:[Trash] trash_dir = ~/.local/share/Trash # 回收站目录(默认路径) trash_max_file_size = 10485760 # 单个文件最大大小(10MB) trash_max_files = 1000 # 回收站最大文件数量 trash_keep_days = 7 # 文件保留天数(7天后自动删除) btrfs支持内置回收站,需通过挂载选项启用:
/dev/sda1 /mnt/data btrfs defaults 1 1),添加discard,subvol=@选项,改为:/dev/sda1 /mnt/data btrfs defaults,discard,subvol=@ 1 1。sudo mount -o remount /mnt/data使配置生效。btrfs subvolume list /mnt/data(回收站通常为@trash子卷);btrfs subvolume find-new查找并复制文件至原路径;btrfs subvolume delete /mnt/data/@trash。ext4、xfs等文件系统需依赖第三方工具(如trash-cli)实现回收站功能,配置方法同“1. 使用trash-cli工具”。
若需更贴合需求的回收站,可编写脚本实现:
mkdir -p ~/.trash(用户级)或/data/Recycle(系统级)。/usr/local/bin/recycle):#!/bin/bash RECYCLE_DIR="$HOME/.trash" TIMESTAMP=$(date +%s) for item in "$@"; do mv "$item" "$RECYCLE_DIR/$(basename "$item")_$TIMESTAMP" done chmod +x /usr/local/bin/recycle;rm命令:编辑~/.bashrc,添加alias rm='recycle',然后执行source ~/.bashrc。crontab -e添加0 2 * * * find ~/.trash -type f -mtime +30 -delete)定期清理30天前的文件。无论使用哪种方法,均需防范回收站占用过多磁盘空间:
/usr/local/bin/clean_recycle.sh,内容如下:#!/bin/bash RECYCLE_BIN="$HOME/.local/share/Trash/files" MAX_SIZE=$((10 * 1024 * 1024)) # 10GB(单位:KB) TOTAL_SIZE=$(du -sk "$RECYCLE_BIN" | awk '{print $1}') if [ "$TOTAL_SIZE" -gt "$MAX_SIZE" ]; then find "$RECYCLE_BIN" -type f -delete fi crontab -e添加0 3 * * * /usr/local/bin/clean_recycle.sh,每天凌晨3点执行清理。以上方法可根据系统环境(如是否使用图形界面)、需求(如是否需要图形化操作)选择使用。其中,trash-cli是最通用且功能完善的解决方案,适用于大多数场景。