在Ubuntu系统中,默认情况下并没有像Windows那样的图形界面回收站。但是,您可以通过编写一个简单的Shell脚本来实现类似的功能。以下是如何设置和使用回收站的步骤:
trash
脚本创建 trash
脚本:
打开终端,输入以下命令来创建一个名为 trash.sh
的文件:
touch ~/bin/trash.sh
编辑 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
赋予脚本执行权限:
chmod +x ~/bin/trash.sh
配置别名:
为了方便使用,您可以将系统默认的 rm
命令通过别名替换为 trash
脚本。编辑 ~/.bashrc
或 ~/.zshrc
文件,添加以下内容:
alias rm=~/bin/trash.sh
更新终端配置:
保存文件并退出编辑器,然后在终端中运行以下命令以应用更改:
source ~/.bashrc
或者,如果您使用的是 zsh
:
source ~/.zshrc
现在,当您使用 rm
命令删除文件时,这些文件会被移动到 ~/.trash
目录中,而不是被永久删除。例如:
rm myfile.txt
这会将 myfile.txt
移动到 ~/.trash
目录,并在文件名后添加时间戳以避免重名冲突。
为了防止回收站占用过多的磁盘空间,您可以编写一个脚本定期清理回收站中过期的文件。例如,可以删除超过30天的文件:
创建 clean_trash.sh
脚本:
touch ~/bin/clean_trash.sh
编辑 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."
赋予脚本执行权限:
chmod +x ~/bin/clean_trash.sh
自动化执行:
为了让清理任务自动化执行,您可以将此脚本添加到 crontab
中,例如每天运行一次:
(crontab -l ; echo "0 0 * * * ~/bin/clean_trash.sh") | crontab -
这将在每天凌晨0点运行 clean_trash.sh
脚本,自动清理回收站。
通过以上步骤,您就可以在Ubuntu系统中设置一个简单的回收站功能,并通过定期清理脚本管理磁盘空间。这种方法不仅提高了误删文件的恢复能力,还能有效管理磁盘空间。