如何别名 rm 以始终确认

Law*_*eLi 7 bash alias rm

当我使用命令时rm -rf,我想确保在删除文件之前总是出现提示,所以我尝试将其添加到~/.bashrc

alias 'rm -rf'='rm -rfi'
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我怎样才能解决这个问题?

msw*_*msw 9

确认是实现您想要的结果的一种弱方法:不删除您不想删除的文件。我可以连续要求你确认 10 次,但如果你刚刚要求我删除,mispeled.txt那么在你确认之前你不会意识到你的错误。

最好trash在您的系统上使用或类似的命令将文件发送到(可恢复的)“回收站”。trash-clirpmfind.net 上有一个包的 RPM 版本,但我不能保证那个版本。如有疑问,请从源代码中自行构建。

正如评论中所指出的,完全使用别名是一个坏主意rm,因为当您处于没有保护别名的外壳中并且您的大脑习惯于拥有“安全”时,它回来咬您rm

  • 由于此处所述的原因,别名 rm 是一个可怕的想法:http://apple.stackexchange.com/questions/17622/how-can-i-make-rm-move-files-to-the-trash-can (2认同)

Wil*_*ill 6

在你的~/.bashrc,你可以这样做:

alias rm='rm -i'
Run Code Online (Sandbox Code Playgroud)

这样,当您键入 时rm -rf example-dir,Bash 会将其转换为rm -i -rf example-dir.

请注意,对于交互式登录 shell,~/.bash_profile使用 代替。要使登录 shell 也使用~/.bashrc,只需将其添加到您的~/.bash_profile

[ -f ~/.bashrc ] && . ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

现在~/.bashrc将始终在您打开终端或 ssh 会话时执行。