在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 listtrash restore file_nametrash 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系統中實現一個簡單且實用的回收站功能,并設置自動清理過期文件的機制。這種方法不僅提高了誤刪文件的恢復能力,還能有效管理磁盤空間。