在CentOS系统中,回收站功能并非由系统默认提供,但可以通过一些方法手动实现。以下是在CentOS中管理回收站文件的步骤:
在用户的主目录下创建一个名为 .trash
的隐藏目录,用于存放删除的文件和目录。
mkdir -p ~/.trash
为 .trash
目录设置适当的权限,以便用户可以访问和管理它。
chmod 700 ~/.trash
创建一个名为 trash.sh
的脚本,用于将文件移动到回收站目录,并为文件添加时间戳以防止重名。
#!/bin/bash
TRASH_DIR="$HOME/.trash"
if [ ! -d "$TRASH_DIR" ]; then
mkdir -p "$TRASH_DIR"
fi
if [ $# -eq 0 ]; then
echo "Usage: $0 file_or_directory"
exit 1
fi
for FILE in "$@"; do
if [ -e "$FILE" ]; then
TIMESTAMP=$(date +%Y%m%d%H%M%S)
BASENAME=$(basename "$FILE")
NEW_NAME="${BASENAME}_$TIMESTAMP"
mv "$FILE" "$TRASH_DIR/$NEW_NAME"
else
echo "'$FILE' does not exist!"
fi
done
将该脚本保存为 /bin/trash.sh
,并赋予其可执行权限。
chmod x /bin/trash.sh
rm
命令创建别名为了方便使用,可以将系统默认的 rm
命令通过别名替换为 trash
脚本。
编辑 ~/.bashrc
或 ~/.zshrc
文件,添加以下内容:
alias rm='/bin/trash.sh'
更新终端配置后,用户可以像往常一样使用 rm
命令“删除”文件。
rm myfile.txt
此操作将文件 myfile.txt
移动到 ~/.trash
目录,并在文件名后添加时间戳以避免重名冲突。
用户可以手动清空回收站,使用以下命令:
rm -rf ~/.local/share/Trash/files/*
也可以创建一个名为 clear_trash.sh
的脚本,用于自动清理回收站中过期的文件。例如,可以删除超过 30 天的文件:
#!/bin/bash
TRASH_DIR="$HOME/.trash"
find "$TRASH_DIR" -type f -mtime +30 -exec rm -f {} \;
echo "Trash cleaned up."
将该脚本保存为 /bin/clear_trash.sh
,并赋予其可执行权限。
chmod x /bin/clear_trash.sh
为了让清理任务自动化执行,可以将此脚本添加到 crontab
中,例如每天运行一次:
(crontab -l; echo "0 0 * * * /bin/clear_trash.sh") | crontab -
trash-cli
管理回收站trash-cli
是一个用于管理回收站的工具,可以方便地将文件移动到回收站、从回收站还原文件以及永久删除回收站中的文件。首先,确保您的系统已经安装了 trash-cli
:
sudo yum install trash-cli
然后,您可以使用以下命令来管理回收站:
将文件移动到回收站:
trash file.txt
从回收站还原文件:
trash -r file.txt
永久删除回收站中的文件:
trash -d file.txt
清空回收站:
trash -c