CentOS系统回收站使用指南(手动实现与工具推荐)
CentOS默认未内置图形化回收站功能,但可通过命令行工具或自定义脚本模拟回收站行为,实现文件的安全删除与恢复。以下是具体方法:
1. 安装trash-cli
通过yum包管理器安装,适用于大多数CentOS版本:
sudo yum install trash-cli -y
2. 基本使用命令
rm命令,文件移动至~/.local/share/Trash/files):trash /path/to/file_or_directory
trash-list
trash-restore
执行后会列出回收站文件,输入对应编号即可恢复。trash-empty
可选参数trash-empty 7表示删除7天前的文件。3. 配置回收站参数(可选)
编辑/etc/trash.conf调整回收站大小、保留时间等:
sudo vi /etc/trash.conf
修改以下参数(单位:字节,trash_keep_days为保留天数):
[Trash]
trash_max_file_size = 10485760 # 单个文件最大10MB
trash_keep_days = 7 # 文件保留7天
若使用GNOME桌面(如CentOS默认桌面),gvfs-trash可集成图形界面与回收站功能。
1. 安装gvfs-trash
sudo yum install gvfs-trash -y
2. 基本使用命令
gvfs-trash /path/to/file_or_directory
gvfs-trash-list
gvfs-trash-empty
3. 注意事项
Delete)默认使用gvfs-trash,无需额外配置。~/.local/share/Trash,与trash-cli一致。通过Shell脚本实现回收站功能,适合需要高度自定义的场景。
1. 创建回收站目录
在用户主目录下创建隐藏目录:
mkdir -p ~/.local/share/Trash/{files,info}
2. 编写回收脚本(如~/bin/trash.sh)
#!/bin/bash
TRASH_DIR="$HOME/.local/share/Trash/files"
INFO_DIR="$HOME/.local/share/Trash/info"
# 确保目录存在
[ ! -d "$TRASH_DIR" ] && mkdir -p "$TRASH_DIR"
[ ! -d "$INFO_DIR" ] && mkdir -p "$INFO_DIR"
# 移动文件至回收站并添加时间戳
for item in "$@"; do
if [ -e "$item" ]; then
timestamp=$(date +%s)
filename=$(basename "$item")
newname="${filename}-${timestamp}"
mv "$item" "$TRASH_DIR/$newname"
# 可选:记录删除信息到info目录
echo "Path: $item\nDeletionTime: $(date)\n" > "$INFO_DIR/${newname}.trashinfo"
else
echo "'$item' does not exist!" >&2
fi
done
赋予执行权限:
chmod +x ~/bin/trash.sh
3. 替换默认rm命令
编辑~/.bashrc,将rm指向自定义脚本:
alias rm='~/bin/trash.sh'
重新加载配置:
source ~/.bashrc
此后使用rm命令将自动调用回收脚本。
4. 自动清理回收站(可选)
创建清理脚本(如~/bin/clean_trash.sh):
#!/bin/bash
find ~/.local/share/Trash/files -type f -mtime +30 -exec rm -f {} \;
find ~/.local/share/Trash/info -type f -mtime +30 -exec rm -f {} \;
echo "Recycle bin cleaned (30 days old files)."
添加到crontab每日执行:
crontab -e
添加以下行:
0 0 * * * ~/bin/clean_trash.sh
~/.local/share/Trash)有读写权限(chmod 700 ~/.local/share/Trash)。gvfs-trash以获得更好的兼容性。通过以上方法,可在CentOS系统中实现类似Windows的回收站功能,有效降低误删风险。根据使用场景(命令行/图形界面、自定义需求)选择合适的方式即可。