Meet safe-rm
,“ rm
命令周围的包装器,以防止意外删除”:
safe-rm通过rm
使用包装器进行替换来防止重要文件的意外删除,该包装器将对给定的参数与永不删除的可配置文件和目录黑名单进行检查。
试图删除这些受保护文件或目录之一的用户将无法这样做,而将显示警告消息。(man safe-rm
)
如果上面的安装链接对您不起作用,请sudo apt install safe-rm
改用。默认配置已经包含系统目录,让我们尝试rm /*
例如:
$ rm /*
safe-rm: skipping /bin
safe-rm: skipping /boot
safe-rm: skipping /dev
safe-rm: skipping /etc
safe-rm: skipping /home
safe-rm: skipping /lib
safe-rm: skipping /proc
safe-rm: skipping /root
safe-rm: skipping /sbin
safe-rm: skipping /sys
safe-rm: skipping /usr
safe-rm: skipping /var
…
如您所见,这将防止您删除/home
,我想您的个人文件存储在这里。但是,~
如果您尝试直接删除它们或其子目录,它不会阻止您删除它们或其任何子目录。要添加~/precious_photos
目录,只需添加其绝对路径,并将波浪号解析为safe-rm
的配置文件/etc/safe-rm.conf
,例如:
echo /home/dessert/precious_photos | sudo tee -a /etc/safe-rm.conf
对于您rm
不带sudo
1和-f
标志运行的情况,最好为您的shell 添加一个alias
使rm
的-i
标志为默认标志的外壳。这种方式rm
要求每个文件在删除之前:
alias rm='rm -i'
一个类似的有用标志是-I
,它仅警告“一次删除三个以上的文件之前,或者以递归方式删除时”,这“比侵入程度小-i
,同时仍然可以防止大多数错误”:
alias rm='rm -I'
这些别名的一般危险是,您容易养成依靠它们来保存您的习惯,这在使用其他环境时可能会适得其反。
1:sudo
忽略别名,alias sudo='sudo '
尽管可以通过定义别名来解决