xDroid's Blog

10 rm -rf / (从新手到菜鸟的Linux教程)

先手动滑稽一发:

![Q.Q](/images/10-rm/Screenshot from 2016-06-12 19-28-15.jpg)

憨豆先生……

今天来说说这个有趣的命令,叫rm。(考验你们反缩写的能力的时候到了!)

没错,rm可以用来删除文件,比如这样:

wang:~$ ls
Another_Dir2            Dir2       examples.desktop  Music     Templates
another_long_dull_text  Documents  ex_file           Pictures  Videos
Desktop                 Downloads  long_dull_text    Public
wang:~$ rm ex_file
wang:~$ ls
Another_Dir2            Dir2       examples.desktop  Pictures   Videos
another_long_dull_text  Documents  long_dull_text    Public
Desktop                 Downloads  Music             Templates

喏,一个文件没了。

没了?!都不提醒我一下么!这™也太危险了吧……其实呢,Linux/Unix大部分危险的命令默认都是没有提醒功能的,因为大概写代码的人觉得用这些工具的人都是老手,为什么要弹提醒烦人呢。
不过要是想“烦人”也不是不可以:加上-i(–interactive)参数就可以发出警告了:

wang:~$ rm -i long_dull_text another_long_dull_text
rm: remove regular file ‘long_dull_text’? y
rm: remove regular file ‘another_long_dull_text’? y
wang:~$ ls
Another_Dir2  Dir2       Downloads         Music     Public     Videos
Desktop       Documents  examples.desktop  Pictures  Templates

mvcp一样,rm支持多个参数。

好呀好呀……我们来试试看删除文件夹:

wang:~$ rm Dir2
rm: cannot remove ‘Dir2’: Is a directory

为什么文件说没就没,但是文件夹就要遭到不平等待遇呢!这点再次应证了昨天我们说过的那一点,就是文件夹是一种特殊的“文件”,不能直接复制或操作。
不过想必你们也猜到了,大概“递归地”删除一个文件夹是可以的:

wang:~$ rm Dir2 -r
wang:~$ ls
Desktop    Downloads         Music     Public     Videos
Documents  examples.desktop  Pictures  Templates

开关-r放在哪里都能起效果的。

顺便说一句-f就是强行删除,不加提示的意思。所以下面这句话是什么意思呢?

rm -rf / home/wang/a_file

是删除了一个家目录下的文件吗?哈哈不是哦!路径被一个空格分割开来了,所以其实删除了/home/wang/a_file这两个东西;前者没有权限删除,后者找不到-_-

但是 rm 并不能察觉出这个空格有什么异常;于是有时候就会发生一些悲剧(见bumblebee事件)。

好啦,前十篇就讲这么多。xDroid也要复(yu)习(xi)期末考试了,大概要停更一两个星期的样子……