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

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

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

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

现在,我打算制作一个脚本作为的别名rm

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

谢谢。

答案1

如果您想要定制rm,请不要称呼它rm,而应使用您的名字,myrm或者delete其他任何名称。

别名rm='rm -i'非常可怕,因为使用一段时间后,您会希望rm在删除文件之前默认提示您。当然,有一天您会使用未设置该别名的帐户运行它,而等您明白发生了什么时,已经太晚了。

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

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

答案2

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

alias rm='echo "rm is disabled, use remove or trash or /bin/rm instead."'

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

alias remove='/bin/rm -irv'

或改用trash

答案3

您可以尝试使用trash相反。只需记得偶尔清空它即可……

答案4

我使用以下脚本。

#!/bin/sh

trash=$HOME/tmp
mv "$@" $trash
nohup find "$trash" -type f -atime +7 -exec /bin/rm '{}' \; 2>&1 &

如果您意外删除了文件,请从中恢复它$HOME/tmp

该脚本将已删除的文件移动到一个tmp目录,并在下次运行删除脚本时删除这些文件(如果访问时间是 7 天后)(目录的半自动清理$HOME/tmp)。

相关内容