温馨提示×

Linux回收站如何自定义

小樊
71
2025-05-18 18:53:08
栏目: 智能运维

在Linux系统中,回收站并不是像Windows那样内置的功能,但可以通过一些方法来实现类似的效果。以下是几种常见的方法来设置Linux系统的回收站功能:

使用 .trash 目录

  • 在用户的主目录下创建一个名为 .trash 的隐藏文件夹,用来存放临时删除的文件。
  • 修改用户的 .bashrc 文件,重写 rm 命令,使其在执行删除操作时,把文件移动到 .trash 目录中。
  • 示例脚本:
#!/bin/bash
TRASH_DIR="$HOME/.trash"

if [ ! -d "$TRASH_DIR" ]; then
    mkdir -p "$TRASH_DIR"
fi

if [ "$#" -eq 0 ]; then
    echo "Usage: rm file1 [file2 file3...]"
    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"
        echo "$file is deleted!"
    else
        echo "'$file' does not exist!"
    fi
done
  • 将该脚本保存为 /bin/trash.sh,并赋予其可执行权限:chmod +x /bin/trash.sh
  • 编辑 ~/.bashrc 文件,添加以下内容:
alias rm='/bin/trash.sh'
  • 更新终端配置后,用户可以像往常一样使用 rm 命令“删除”文件。

使用 trash-cli 工具

  • trash-cli 是一个命令行工具,可以提供更高级的回收站管理功能。
  • 安装 trash-cli
sudo apt-get install trash-cli  # Debian/Ubuntu
sudo yum install trash-cli      # CentOS/RHEL
  • 使用 trash-cli 管理回收站:

    • 列出回收站内容:trash list
    • 恢复文件:trash restore file_name
    • 清空回收站:trash empty

使用脚本

  • 可以编写一个脚本来监控删除操作,并将删除的文件移动到一个特定的目录。
  • 示例脚本:
#!/bin/bash
TRASH_DIR="/.local/share/Trash/files"
INFO_DIR="/.local/share/Trash/info"

if [ "$#" -eq 0 ]; then
    echo "Usage: trash file1 [file2 ...]"
    exit 1
fi

for file in "$@"; do
    if [ -e "$file" ]; then
        mv "$file" "$TRASH_DIR"
        echo "[$(date +%Y-%m-%d-%H:%M:%S)] $file" > "$INFO_DIR/${file#*.}"
        echo "Path: $file" >> "$INFO_DIR/${file#*.}"
        echo "DeletionDate: $(date +%Y-%m-%d-%H:%M:%S)" >> "$INFO_DIR/${file#*.}"
        echo "Deleted" >> "$INFO_DIR/${file#*.}"
    else
        echo "File not found: $file"
    fi
done
  • 赋予脚本执行权限:chmod +x trash
  • 使用 trash 命令来删除文件,这些文件会被移动到回收站目录。

使用图形界面工具

  • 对于Linux桌面用户,还可以安装额外的工具或插件来实现图形界面下的回收站管理。这些工具通常集成在系统的右键菜单中,提供了更加直观方便的操作方式。

通过上述方法,用户可以在Linux系统中实现一个简单且实用的回收站功能,并设置自动清理过期文件的机制。这种方法不仅提高了误删文件的恢复能力,还能有效管理磁盘空间。

0