Linux中如何自定义回收站路径

442
2025/3/15 9:32:44
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Linux系统中,通常没有像Windows那样的回收站功能。但是,你可以使用一些方法来实现类似的功能,并自定义回收站的路径。以下是一些常见的方法:

方法一:使用trash-cli

trash-cli是一个命令行工具,可以让你像使用Windows回收站一样管理文件。

  1. 安装trash-cli

    sudo apt-get install trash-cli  # Debian/Ubuntu
    sudo yum install trash-cli      # CentOS/RHEL
    sudo dnf install trash-cli      # Fedora
    
  2. 配置回收站路径trash-cli默认将文件移动到用户的家目录下的.local/share/Trash/files.local/share/Trash/info目录中。你可以通过设置环境变量来更改这些路径。

    在你的~/.bashrc~/.bash_profile文件中添加以下内容:

    export TRASH_DIR="/path/to/your/custom/trash/directory"
    

    然后重新加载配置文件:

    source ~/.bashrc  # 或 source ~/.bash_profile
    

方法二:使用gvfs-trash

gvfs-trash是GNOME桌面环境中的一个工具,也可以在其他桌面环境中使用。

  1. 安装gvfs-trash

    sudo apt-get install gvfs-backends  # Debian/Ubuntu
    sudo yum install gvfs-backends      # CentOS/RHEL
    sudo dnf install gvfs-backends      # Fedora
    
  2. 配置回收站路径gvfs-trash默认将文件移动到用户的家目录下的.local/share/Trash目录中。你可以通过设置环境变量来更改这个路径。

    在你的~/.bashrc~/.bash_profile文件中添加以下内容:

    export XDG_DATA_HOME="/path/to/your/custom/data/directory"
    

    然后重新加载配置文件:

    source ~/.bashrc  # 或 source ~/.bash_profile
    

方法三:手动创建和管理回收站

如果你不想使用第三方工具,也可以手动创建一个回收站目录,并编写一些脚本来管理文件的删除和恢复。

  1. 创建回收站目录

    mkdir -p ~/.mytrash/files
    mkdir -p ~/.mytrash/info
    
  2. 编写删除脚本: 创建一个名为trash的脚本,内容如下:

    #!/bin/bash
    
    if [ -z "$1" ]; then
        echo "Usage: trash <file|directory>"
        exit 1
    fi
    
    DEST="$HOME/.mytrash/files/$(date +%s_%N)"
    mkdir -p "$DEST"
    
    if [ -f "$1" ]; then
        cp "$1" "$DEST"
    elif [ -d "$1" ]; then
        cp -r "$1" "$DEST"
    else
        echo "File or directory not found."
        exit 1
    fi
    
    rm -rf "$1"
    

    赋予脚本执行权限:

    chmod +x trash
    
  3. 编写恢复脚本: 创建一个名为untrash的脚本,内容如下:

    #!/bin/bash
    
    if [ -z "$1" ]; then
        echo "Usage: untrash <file>"
        exit 1
    fi
    
    SRC="$HOME/.mytrash/files/$1"
    DEST="$1"
    
    if [ -d "$SRC" ]; then
        cp -r "$SRC" "$DEST"
    elif [ -f "$SRC" ]; then
        cp "$SRC" "$DEST"
    else
        echo "File or directory not found in trash."
        exit 1
    fi
    
    rm -rf "$HOME/.mytrash/files/$1"
    

    赋予脚本执行权限:

    chmod +x untrash
    

通过以上方法,你可以在Linux系统中实现类似Windows回收站的功能,并自定义回收站的路径。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Linux中grep怎样提高搜索速度