rm 無回收筒、不可逆,誤刪風險極高。本文教您以 Shell 腳本包裝 rm,將刪除檔案搬移至回收目錄並加上時間戳記,搭配 crontab 定期清理舊檔。
#!/bin/sh
# 安全移除:移至回收目錄並加時間戳
dirpath="/data/Recycle"
now=$(date +%Y%m%d_%H_%M_%S_)
filename="${now}$1"
[ ! -d "$dirpath" ] && mkdir -p "$dirpath"
mv "$1" "${dirpath}/${filename}"
chmod 755 /bin/rm.sh
echo "alias rm='/bin/rm.sh'" >> /etc/bashrc
source /etc/bashrc
之後執行 rm file.txt 實際執行腳本,檔案移至 /data/Recycle/20240115_10_30_00_file.txt。
/bin/rm -rf /data/Recycle/file.txt # 直接刪除回收區檔案
/bin/rm -rf filename # 直接刪除(不經回收筒)
cat > /root/clean_recycle.sh <<'EOF'
#!/bin/sh
dirpath="/data/Recycle/"
find "$dirpath" -mtime +30 -exec /bin/rm -rf {} \;
EOF
chmod +x /root/clean_recycle.sh
# 加入 crontab(每週日 05:01 執行)
crontab -e
# 1 5 * * 0 sh /root/clean_recycle.sh
trash-cli(trash-put/trash-list/trash-restore)。