#某次主目录下rm -rf ~ 后查找
safe-rm 防止误操作rm
1.安装
wget -c https://launchpadlibrarian.net/188958703/safe-rm-0.12.tar.gz
tar -xzvf safe-rm-0.12.tar.gz
cd safe-rm-0.12
2.给权限
#此处我似乎未操作,有点记不清了,好像只是在.bashrc 加了 alias rm=‘safe-rm’
sudo su
mv safe-rm /usr/local/bin/rm
chown root:root /usr/local/bin/rm
3.设置环境变量
sudo gedit /etc/profile
#第一个export前填加
PATH=/usr/local/bin:$PATH
4.保护列表
sudo gedit /etc/safe-rm.conf
可以为
/
/bin
/boot
/dev
/etc
/home
/initrd
/lib
/proc
/root
/sbin
/sys
/usr
/usr/bin
/usr/include
/usr/lib
/usr/local
/usr/local/bin
/usr/local/include
/usr/local/sbin
/usr/local/share
/usr/sbin
/usr/share
/usr/src
/var
测试是否安装成功,可以再保护列表内添加路径文件
**注意:**此处添加的路径仅在删除该路径时生效,距离路径为/home/lx/w,则在使用rm -r w/时生效,如在w路径内删除,则正常删除。
这里我设置了后在跳过删除的同时还提示了其他的内容,本人暂未解决,希望那天被人看到可以指点一下,真的很需要
safe-rm: skipping w/
/bin/rm: 缺少操作数
Try '/bin/rm --help' for more information.
参考链接:safe-rm防止危险删除
再做第三步的时候,重启后出现了输入密码后无法进入桌面,只显示壁纸的情况,此时需要ctrl+alt+f1
进入操作模式,复原文件后
sudo service lightdm restart
重启桌面后正常
Plan B
1.安装safe -rm
2.在zsh或者bash添加下列字段
说明:具体指在使用rm指令时,会自动变成mv指令。同时将文件回收至指定目录,并将信息记录在指定路径内的00rmlog.txt文件内,建议将次文件夹的误删除添加到上个方法内。
# 注意: 此方法在使用xargs传参删除时无效
alias rm='safe_rm'
export TRASH_DIR="/home/lx/Recycling" #回收rm的文件
safe_rm () {
local d t f s
[ -z "$PS1" ] && (/bin/rm "$@"; return)
d="${TRASH_DIR}" # 更改 d 变量的值
t=`date +%F_%H-%M-%S`
[ -e "$d" ] || mkdir -p "$d" || return
for f do
[ -e "$f" ] || continue
s=`basename "$f"`
/bin/mv "$f" "$d/${t}_$s" || break
done
echo -e "[$? $t `whoami` `pwd`]$@\n" >> "$d/00rmlog.txt"
}
或
alias rm='safe-rm'
export TRASH_DIR="/home/lx/Recycling"
safe_rm () {
local d t f s
[ -z "$PS1" ] && (/bin/rm "$@"; return)
d="${TRASH_DIR}/.`date +%W`.__trash" # 更改 d 变量的值
t=`date +%F_%H-%M-%S`
[ -e "$d" ] || mkdir -p "$d" || return
for f do
[ -e "$f" ] || continue
s=`basename "$f"`
/bin/mv "$f" "$d/${t}_$s" || break
done
echo -e "[$? $t `whoami` `pwd`]$@\n" >> "$d/00rmlog.txt"
}
不同之处在于此段代码会在回收路径内,被删除的文件会自动根据周数命名,同时文件是隐藏的,需要使用ls -a
查看
参考大神:safe-rm变为mv
#小白记录使用,如有侵权,联系删除