Skip to content

[2019-03-05] 为删除命令rm增加提示防止误删 #2

@coppyC

Description

@coppyC

前言

不想看前言,戳这里

用linux系统mac系统的人,对这个命令应该都很熟悉

# 小白请误尝试,出事概不负责
sudo rm -rf /

这是一个删除磁盘所有文件的命令

多少人,在维护服务器的时候,试了试大佬口中常念到的优化服务器命令,然后就。。。 辞职了。。

这大概就是传说中删库跑路吧。

抛开这个不说,rm 其实是一个很常用的删除命令,但我有时候也会翻车,这个倒不是被什么大佬骗去扫什么垃圾,而是我经常要打 mv 命令的时候打成 rm,然后就。。。。

看一下这两个命令的意思

命令 英文全称 含义
rm remove 移除
mv move 移动

是的,这两个单词就差了两个字母,但意思差了几个亿

有时候,想移动个文件,就想着,重新移动,remove,然后就打了 rm 下去,gg (re一般有重新的意思)

有的时候,是想着,重命名,rename,然后就打了 rm 下去,凉凉。

而我经常犯的,就是,第二种情况,想把 a 命名为 b 时,按下了 rm a b(这个命令是删除!!!),然后等到系统提示没有b时,我才发现,我已经gg了

你可能会说,怎么会打错,rename 简写也是 rn, 和rm不一样。

主要有这么几个原因

  • rm 和 rn 太像了,而且name里面也有m,一瞬间打出来的东西,没有想太多
  • rm 打多了,太顺手了
  • move 字面上完全没有 rename 的意思,需要思考一下
  • 平时改名字都是在桌面环境下完成,很少在命令行用 move 来改名字

我觉得,避免这样的事发生,rm 命令在删除前怎么也得有个提示才对啊

正片

正片开始
rm -i xxx

加上参数 i, 可以在删除前做出提示,输入 y 才能执行删除操作

所以,只要 加个 alias ,让 rm 命令 等于 rm -i,就可以避免上述悲剧发生

打开 ~/.bashrc(如果你用zsh,则打开 ~/.zshrc) 在最后一行,加上

alias rm='rm -i'

然后输入 source ~/.bashrc,或重启,让修改生效

但在要注意,参数 f 能在除去有写保护的文件前不提示,两个参数同时使用时,以后面的参数为准
所以用rm -f,仍然不会有提示

Metadata

Metadata

Assignees

No one assigned

    Labels

    linuxlinux 相关

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions