Ubuntu rm -rf映射, 防止手误删除重要文件
创建脚本 新机器配置一次即可
sudo vi /home/safe_rm.sh
#!/bin/bash
TRASH_DIR="$HOME/.rm_backup"
if [ ! -d $TRASH_DIR ]; then
mkdir $TRASH_DIR
fi
for i in $*; do
if [[ "$i" == "-rf" ]];then
continue
elif [[ "$i" == "-r" ]];then
continue
elif [[ "$i" == "-f" ]];then
continue
fi
#echo "参数 $i"
STAMP=`date -d today +"%Y-%m-%d-%T"`
fileName=`basename -- $i`
first_char="${i:0:1}"
#echo $first_char
if [[ "$first_char" == "/" ]];then
echo "["$STAMP"] del from "$i >> $TRASH_DIR/rm.log
else
echo "["$STAMP"] del from "`pwd`"/"$i >> $TRASH_DIR/rm.log
fi
mv $i $TRASH_DIR/$fileName.$STAMP
echo "move to "$TRASH_DIR
done
修改.bashrc 每个用户都要运行
sudo vi ~/.bashrc
添加一行
alias rm="bash /home/safe_rm.sh"
替换更新 每个用户都要运行
source ~/.bashrc
删除垃圾
这边rm 映射后 当前用户不能真正的删除文件,会造成mv的死循环
人工删除
0、sudo rm
1、切换到没有映射的账户,然后再删除;
2、vscode 在目录下鼠标操作删除。
定期清理超过7天的垃圾 每个用户都要运行
find -exec 后的 rm 不受映射影响
crontab -e
0 0 * * * find ~/.rm_backup -mtime +7 -exec rm -rf {} \;
参考
https://blog.csdn.net/QQ1183678930/article/details/118484482
https://www.cnblogs.com/rianley/p/9259008.html
https://blog.csdn.net/why_smile/article/details/104888617