
rm-protection
GitLab 的惨剧想必大家都知道了:rm -rf了生产服务器上的数据库。常在河边走,哪能不湿鞋。即便是再认真,总是有失误的风险。
现在网上已经流行了数种方法: rm -i , trash-cli 等等。rm -i 显然并不实用:想必没人能忍受每个文件都被问一次?况且就 GitLab 的情况,rm -i并不能起保护作用。trash-cli相当于启用了回收站,但是这又会带来一些小麻烦(比如在磁盘被 log 挤爆的情况下)。
rm-protection 则采取了一种全新的思路:由用户自行设置一个安全问题来保护文件,在删除时询问相应的问题。想象一下,若 YP 在执行删除时突然被问一句:「 Which server are you on? 」,还会出现这样的惨剧吗?
快速开始
rm-protection 几乎完全兼容rm,因此可以作为 alias 使用。
-
从 PyPi 中安装并为
rm-p创建 alias 。pip install rm-protection & alias rm="rm-p" -
使用
protect命令保护你想要保护的文件或者文件夹。 -
Happy rm-ing!
原理
rm-protection 获取 arguments 后,会逐一检测是否存在 .<filename>.rm-protection 文件。若存在,则询问用户,否则将不再传递这个 argument 。安全的 argument 将被传递给 rm 进行删除。
栗子:

它也能保护批量的递归删除:

与其他工具的对比
参见 GitHub 中的表格。
未来?
若是这个工具能被推广使用,团队协作之间可以大有功用。在软件、文件分发时,分发者可以提前保护文件防止误删。在开发和部署时也可提前保护文件,防止在生产环境中的误删。
贡献
Github 欢迎 PR, 提 Issue 或者 Star :)