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 :)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.