在CentOS系统中,回收站(Trash)是一个用于存储已删除文件的地方,以便在需要时进行恢复。每个用户都有自己的回收站,位于~/.local/share/Trash/files/
目录下。以下是关于如何在CentOS中管理回收站的详细步骤:
创建回收站目录
首先,确保每个用户都有一个回收站目录。如果没有,可以为每个用户创建一个:
mkdir -p ~/.local/share/Trash/files
修改删除命令
为了使删除的文件自动移动到回收站,可以修改rm
命令。创建一个名为delete
的新文件,并赋予可执行权限:
#!/bin/bash# 记录删除信息log_trash() { file=$1 mark1="." mark2="/" if [ "$file" = ${ file/$mark2/} ]; then fullpath="$(pwd)/$file" elif [ "$file" != ${ file/$mark1/} ]; then fullpath="$(pwd)${ file/$mark1/}" else fullpath="$file" fi echo "$(date +%s) \t $fullpath \t $2" >>~/.local/share/Trash/.log}# 将文件移动到回收站move_to_trash() { if [ ! -d ~/.local/share/Trash/ ]; then mkdir -m 777 -p ~/.local/share/Trash fi prefix=$(date +%Y_%m_%d) if [ ! -d ~/.local/share/Trash/$prefix ]; then mkdir -p ~/.local/share/Trash/$prefix fi files=("$@") for file in "${ files[@]}"; do if [ -f "$file" -o -d "$file" ]; then now=$(date +%Y%m%d_%H%M%S_%N) file_name=${ file%/} move_trash_path="${ HOME}/.local/share/Trash/$prefix/${ file_name}_${ now}" /usr/bin/mv "$file" "$move_trash_path" [ $? -eq 0 ] && log_trash "$file" "$move_trash_path" "$now" fi done}# 如果未提供参数,显示帮助信息if [ $# -eq 0 ]; then echo "Usage: rm file1 [file2 file3....]" exit 128fimove_to_trash "$@"
将上述脚本保存为delete
,并赋予可执行权限:
chmod +x delete
然后,修改/etc/bashrc
文件,添加以下内容:
alias rm='delete'
最后,重新加载环境变量:
source /etc/bashrc
清空回收站
要清空回收站,可以使用以下命令:
rm -rf ~/.local/share/Trash/files/*
定时清理回收站
可以设置定时任务来定期清理回收站中的旧文件。例如,每周六零点清理删除时间超过3天的文件:
0 0 * * 6 find ~/.local/share/Trash -mtime +3 -type f -exec rm -rf { } \;
将此命令添加到用户的crontab
中:
crontab -e
注意事项
- 权限:确保回收站目录和文件的权限设置正确,以防止未授权访问。
- 恢复文件:从回收站恢复文件时,文件名可能会带有时间后缀,以防止同名文件覆盖。
- 直接删除:如果需要直接删除文件而不移动到回收站,可以使用
/usr/bin/rm
命令。
通过以上步骤,您可以在CentOS系统中有效地管理回收站,防止误删文件,并在需要时恢复文件。