在Linux系统中,并没有像Windows那样的回收站功能,不过,我们可以通过编写脚本来实现类似的功能,以下是一个简单的Bash脚本示例,用于模拟回收站的功能。
这个脚本将文件移动到一个名为.trash
的隐藏目录中,而不是直接删除它们,如果需要恢复文件,可以从.trash
目录中移回原位置。
创建回收站脚本
1、创建一个名为trash.sh
的文件:
nano trash.sh
2、在文件中添加以下内容:
#!/bin/bash 定义回收站目录 TRASH_DIR="$HOME/.trash" 如果回收站目录不存在,则创建它 if [ ! -d "$TRASH_DIR" ]; then mkdir -p "$TRASH_DIR" fi 遍历所有传入的文件和目录 for item in "$@"; do if [ -e "$item" ]; then # 获取文件或目录的名称 item_name=$(basename "$item") # 生成唯一的文件名以避免冲突 unique_name="${item_name}_$(date +%s)" # 移动文件或目录到回收站 mv "$item" "$TRASH_DIR/$unique_name" echo "Moved '$item' to '$TRASH_DIR/$unique_name'" else echo "Error: '$item' does not exist." fi done
3、保存并关闭文件(在nano中按Ctrl+X
,然后按Y
确认保存)。
4、使脚本可执行:
chmod +x trash.sh
使用回收站脚本
现在你可以使用这个脚本来“删除”文件或目录。
./trash.sh file1.txt directory1
这将把file1.txt
和directory1
移动到~/.trash
目录中。
恢复文件脚本
为了从回收站中恢复文件,可以创建另一个脚本untrash.sh
:
1、创建untrash.sh
文件:
nano untrash.sh
2、在文件中添加以下内容:
#!/bin/bash 定义回收站目录 TRASH_DIR="$HOME/.trash" 遍历所有传入的文件和目录 for item in "$@"; do if [ -e "$TRASH_DIR/$item" ]; then # 获取文件或目录的名称 item_name=$(basename "$item") # 移动文件或目录回到原来的位置 mv "$TRASH_DIR/$item" "$(dirname $item)" echo "Restored '$TRASH_DIR/$item' to $(dirname $item)" else echo "Error: '$item' does not exist in the trash." fi done
3、保存并关闭文件(在nano中按Ctrl+X
,然后按Y
确认保存)。
4、使脚本可执行:
chmod +x untrash.sh
使用恢复脚本
现在你可以使用这个脚本来恢复文件或目录。
./untrash.sh file1.txt_1638307200 directory1_1638307200
这将把file1.txt_1638307200
和directory1_1638307200
从回收站中移回原来的路径。