为 rm 命令设置别名并使其更安全的最佳实践

Vin*_*Pii 22 unix script bash shell rm

前段时间我错误地删除了我的主文件夹,因为我rm -rf *在错误的终端上运行了 a ,其工作目录是主文件夹!

我希望我有一个rm命令的别名,但事实并非如此。

现在,我打算制作一个脚本作为rm.

你有什么最佳实践建议吗?

谢谢。

jll*_*gre 32

如果你想要一个定制的rm,不要叫它,rm而是叫你的名字myrmdelete或者别的什么。

rm='rm -i'别名是恐怖,因为经过一段时间使用它,你会希望rm在默认情况下删除文件前提示你。当然,有一天你会用一个没有设置别名的帐户运行它,在你了解发生了什么之前,为时已晚。

无论如何,为文件丢失或损坏做好准备的一个好方法是进行备份。

一个可以保护您免受意外文件删除或覆盖的快速替代方法是使用支持无限快照(如 ZFS)的文件系统。如果自动完成频繁快照,您可以将文件恢复为事件发生前上次快照期间的状态。  

  • 我从其中一个遭受过这种恐怖故事的人那里亲自听到了那个恐怖故事。 (3认同)

Dar*_*idl 16

如果您想保存别名,但不想冒险习惯在您的系统上与其他系统上不同的命令,您可以rm像这样禁用

alias rm='echo "rm is disabled, use remove or trash or /bin/rm instead."'
Run Code Online (Sandbox Code Playgroud)

然后您可以创建自己的安全别名,例如

alias remove='/bin/rm -irv'
Run Code Online (Sandbox Code Playgroud)

trash改用。

  • 请注意(至少在某些版本中)您必须以其他顺序定义别名。按照您提供的顺序执行此操作将 `remove` 定义为 ```echo “rm 已禁用,请改用垃圾箱或 /bin/rm。” -irv```。而且,作为一个常识问题,您不希望来自 `rm` 的消息引用您的安全 `remove` 命令吗? (2认同)

l0b*_*0b0 5

您可以尝试使用trash代替。记得偶尔清空一下...