当我使用命令时rm -rf
,我想确保在删除文件之前总是出现提示,所以我尝试将其添加到~/.bashrc
alias 'rm -rf'='rm -rfi'
Run Code Online (Sandbox Code Playgroud)
但它不起作用。我怎样才能解决这个问题?
确认是实现您想要的结果的一种弱方法:不删除您不想删除的文件。我可以连续要求你确认 10 次,但如果你刚刚要求我删除,mispeled.txt
那么在你确认之前你不会意识到你的错误。
最好trash
在您的系统上使用或类似的命令将文件发送到(可恢复的)“回收站”。trash-cli
在rpmfind.net 上有一个包的 RPM 版本,但我不能保证那个版本。如有疑问,请从源代码中自行构建。
正如评论中所指出的,完全使用别名是一个坏主意rm
,因为当您处于没有保护别名的外壳中并且您的大脑习惯于拥有“安全”时,它会回来咬您rm
。
在你的~/.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 会话时执行。