在Linux系統中,回收站功能并不是默認啟用的,但可以通過一些方法手動實現。以下是管理Linux系統回收站的幾種方法:
創建回收站目錄:
在用戶的主目錄下創建一個名為 .trash
的隱藏文件夾,用于存放被刪除的文件和目錄。
mkdir -p ~/.trash
編寫回收站腳本:
創建一個名為 trash.sh
的腳本,用于替代系統的 rm
命令。這個腳本將文件移動到 .trash
目錄,并為文件添加時間戳以防止重名。
#!/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 ~/trash.sh
重命名 rm
命令:
編輯 ~/.bashrc
或 ~/.zshrc
文件,將 rm
命令別名設置為 trash.sh
。
alias rm=~/trash.sh
重新加載配置:
source ~/.bashrc
trashcli
工具trashcli
是一個命令行工具,提供了更豐富的回收站管理功能??梢酝ㄟ^軟件包管理器安裝:
在Debian/Ubuntu上:
sudo apt-get install trash-cli
在Fedora上:
sudo dnf install trash-cli
使用 trashcli
的基本命令包括:
trash list
trash restore file.txt
trash empty
為了防止回收站占用過多磁盤空間,可以編寫一個腳本定期清理回收站中的過期文件。例如,刪除超過30天的文件:
#!/bin/bash
TRASH_DIR="$HOME/.trash"
find "$TRASH_DIR" -type f -mtime +30 -exec rm -f {} \;
echo "Trash cleaned up."
將該腳本保存為 clean_trash.sh
,并賦予其可執行權限:
chmod +x ~/clean_trash.sh
為了讓清理任務自動化執行,可以將此腳本添加到 crontab
中,例如每天運行一次:
(crontab -l ; echo "0 0 * * * ~/clean_trash.sh") | crontab -
通過上述方法,你可以在Linux系統中實現一個簡單且實用的回收站功能,并設置自動清理過期文件的機制。這不僅提高了誤刪文件的恢復能力,還能有效管理磁盤空間。根據實際需求,這一方案還可以進一步擴展和優化,例如增加文件恢復功能或自定義文件的保留時間等。