Linux【2】-管理文件-1-5-删除rm

三、rm

[root@www ~]# rm [-fir] 档案或目录

选项与参数:
 -f :就是 force 的意思,忽略不存在的档案,不会出现警告讯息;
 -i :互动模式,在删除前会询问使用者是否动作
 -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

3.1 范例一:将刚刚在 cp 的范例中建立的 bashrc 删除掉!

[root@www ~]# cd /tmp
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y

#如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名!

3.2 透过通配符*的帮忙,将/tmp底下开头为bashrc的档名通通删除:

[root@www tmp]# rm -i bashrc*

#注意那个星号,代表的是 0 到无穷多个任意字符喔!很好用的东西!

3.3 将 cp 范例中所建立的 /tmp/etc/ 这个目录删除掉!

[root@www tmp]# rmdir /tmp/etc
rmdir: etc: Directory not empty <== 删不掉啊!因为这不是空的目录!
[root@www tmp]# rm -r /tmp/etc
rm: descend into directory `/tmp/etc'? y
....(中间省略)....

#因为身份是 root ,预设已经加入了 -i 的选项,所以你要一直按 y 才会删除! #如果不想要继续按 y ,可以按下『[ctrl]-c 』来结束 rm 的工作。 #这是一种保护的动作,如果确定要删除掉此目录而不要询问,可以这样做:

[root@www tmp]# \rm -r /tmp/etc

#在指令前加上反斜杠,可以忽略掉 alias 的指定选项喔!至于 alias 我们在bash再谈!

3.4 删除一个带有 - 开头的档案

[root@www tmp]# touch ./-aaa- <==touch这个指令可以建立空档案!
[root@www tmp]# ls -l
-rw-r--r-- 1 root root 0 Sep 24 15:03 -aaa- <==档案大小为0,所以是空档案
[root@www tmp]# rm -aaa-
Try `rm --help' for more information. <== 因为 "-" 是选项嘛!所以系统误判了!
[root@www tmp]# rm ./-aaa-

强制删除

如果要删除的目录中有 1 万个子目录或子文件,那么普通的 rm 删除最少需要确认 1 万次。所以,在真正删除文件的时候,我们会选择强制删除。例如:

[root@localhost ~]# mkdir -p /test/lm/movie/jp
#重新建立测试目录
[root@localhost ~]# rm -rf /test
#强制删除,一了百了

加入了强制功能之后,删除就会变得很简单,但是需要注意,数据强制删除之后无法恢复,除非依赖第三方的数据恢复工具,如 extundelete 等。但要注意,数据恢复很难恢复完整的数据,一般能恢复 70%~80% 就很难得了。所以,与其把宝压在数据恢复上,不如养成良好的操作习惯。

虽然 “-rf” 选项是用来删除目录的,但是删除文件也不会报错。所以,为了使用方便,一般不论是删除文件还是删除目录,都会直接使用 “-rf” 选项。

删除某些文件

find ./ -maxdepth 3 -name 'sim.d*' |xargs rm -rf

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn