在Linux系统中,回收站并不是像Windows那样内置的功能,但可以通过一些方法来实现类似的效果。以下是几种常见的方法来设置Linux系统的回收站功能:
.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
: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系统中实现一个简单且实用的回收站功能,并设置自动清理过期文件的机制。这种方法不仅提高了误删文件的恢复能力,还能有效管理磁盘空间。