ubuntu

ubuntu如何设置回收站

小樊
50
2025-06-04 14:17:38
栏目: 智能运维

在Ubuntu系统中,默认情况下并没有像Windows那样的图形界面回收站。但是,您可以通过编写一个简单的Shell脚本来实现类似的功能。以下是如何设置和使用回收站的步骤:

编写并设置 trash 脚本

  1. 创建 trash 脚本

    打开终端,输入以下命令来创建一个名为 trash.sh 的文件:

    touch ~/bin/trash.sh
    
  2. 编辑 trash.sh 脚本

    使用文本编辑器打开 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
    
  3. 赋予脚本执行权限

    chmod +x ~/bin/trash.sh
    
  4. 配置别名

    为了方便使用,您可以将系统默认的 rm 命令通过别名替换为 trash 脚本。编辑 ~/.bashrc~/.zshrc 文件,添加以下内容:

    alias rm=~/bin/trash.sh
    
  5. 更新终端配置

    保存文件并退出编辑器,然后在终端中运行以下命令以应用更改:

    source ~/.bashrc
    

    或者,如果您使用的是 zsh

    source ~/.zshrc
    

使用回收站

现在,当您使用 rm 命令删除文件时,这些文件会被移动到 ~/.trash 目录中,而不是被永久删除。例如:

rm myfile.txt

这会将 myfile.txt 移动到 ~/.trash 目录,并在文件名后添加时间戳以避免重名冲突。

定期清理回收站

为了防止回收站占用过多的磁盘空间,您可以编写一个脚本定期清理回收站中过期的文件。例如,可以删除超过30天的文件:

  1. 创建 clean_trash.sh 脚本

    touch ~/bin/clean_trash.sh
    
  2. 编辑 clean_trash.sh 脚本

    使用文本编辑器打开 clean_trash.sh,并粘贴以下脚本内容:

    #!/bin/bash
    TRASH_DIR="$HOME/.trash"
    find "$TRASH_DIR" -type f -mtime +30 -exec rm -f {} \;
    echo "Trash cleaned up."
    
  3. 赋予脚本执行权限

    chmod +x ~/bin/clean_trash.sh
    
  4. 自动化执行

    为了让清理任务自动化执行,您可以将此脚本添加到 crontab 中,例如每天运行一次:

    (crontab -l ; echo "0 0 * * * ~/bin/clean_trash.sh") | crontab -
    

    这将在每天凌晨0点运行 clean_trash.sh 脚本,自动清理回收站。

通过以上步骤,您就可以在Ubuntu系统中设置一个简单的回收站功能,并通过定期清理脚本管理磁盘空间。这种方法不仅提高了误删文件的恢复能力,还能有效管理磁盘空间。

0
看了该问题的人还看了