centos

CentOS如何管理回收站文件

小樊
39
2025-06-30 16:41:14
栏目: 智能运维

在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

然后,您可以使用以下命令来管理回收站:

0
看了该问题的人还看了