centos

CentOS如何自定义回收站规则

小樊
39
2025-06-24 14:10:03
栏目: 智能运维

在CentOS系统中,回收站功能并非由系统默认提供,但可以通过一些方法手动实现。以下是关于CentOS回收站自定义的相关信息:

创建回收站目录

首先,在当前用户的主目录下创建一个名为 .trash 的目录,用于存放删除的文件和文件夹。

mkdir -p ~/.local/share/Trash/files
mkdir -p ~/.local/share/Trash/info

修改 rm 命令

为了使 rm 命令将文件移动到回收站而不是直接删除,可以创建一个自定义的 rm 命令。

  1. 创建一个名为 remove.sh 的脚本文件:
#!/bin/bash
TRASH_DIR="$HOME/.local/share/Trash/files"
INFO_DIR="$HOME/.local/share/Trash/info"

# 创建回收站目录(如果不存在)
mkdir -p "$TRASH_DIR" "$INFO_DIR"

# 监控删除操作
inotifywait -m -r --format '%w%f' --event delete "$1" | while read FILE do
    # 获取文件的相对路径
    RELATIVE_PATH="${FILE#$1}"
    # 创建回收站中的目录结构
    mkdir -p "$TRASH_DIR$(dirname "$RELATIVE_PATH")"
    # 移动文件到回收站
    mv "$FILE" "$TRASH_DIR$RELATIVE_PATH"
    # 创建一个.info文件
    echo "path=$RELATIVE_PATH" > "$INFO_DIR$(basename "$RELATIVE_PATH").info"
done
  1. 赋予脚本执行权限:
chmod +x trash.sh
  1. 将脚本复制到 /bin 目录下,并命名为 rm
cp trash.sh /bin/rm
  1. 编辑 /root/.bashrc 文件,添加以下内容:
alias rm='/bin/rm'
  1. 重新加载环境变量以使更改生效:
source /root/.bashrc

设置定时任务清理回收站

为了自动清理回收站中的文件,可以设置一个定时任务。

使用 crontab -e 编辑定时任务:

crontab -e

添加以下行以每天清理一次回收站:

0 0 * * * /bin/rm -rf $HOME/.local/share/Trash/files/*

这行命令会在每天午夜删除回收站中的所有内容。

使用 trash-cli

trash-cli 是一个命令行工具,可以让你像在图形化桌面环境中一样使用回收站。

  1. 安装 trash-cli
sudo yum install trash-cli
  1. 使用 trash-cli 将文件移动到回收站:
trash /path/to/file
  1. 清空回收站:
trash-empty
  1. 查看回收站内容:
trash-list
  1. 将文件从回收站恢复:
trash-restore /path/to/file

通过以上步骤,你可以在CentOS系统中实现类似图形化桌面环境的回收站功能。选择适合你需求的方法进行配置即可。

0
看了该问题的人还看了