前言

1、rm 命令是remove 的缩写,Linux中 rm 命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

2、rm是一个危险的命令,使用的时候要特别当心,在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西。

语法

rm [选项] 目录名称

参数如下

-d或–directory     直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force       强制删除文件或目录,忽略不存在的文件,不提示确认。
-i或–interactive      删除既有文件或目录之前先询问用户。
-I                   在删除超过三个文件或者递归删除前要求确认。此选项比-i 提示内容更少,但同样可以阻止大多数错误发生。
-r或-R或–recursive  递归删除,将指定目录下的所有文件及子目录一并删除。
-v或–verbose      显示指令执行过程。
–help 在线帮助   查看该命令功能和可带参数等。

常用范例

例一:删除文件系统会先询问是否删除

命令:rm 文件名

输入rm test.txt命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则输入n。

[root@localhost games]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月  13 11:19 test.txt
[root@localhost games]#
rm test.txt rm:是否删除普通空文件 'test.txt'?y
[root@localhost games]# ll 总用量
0

例二:强行删除文件系统不再提示

命令:rm -f 文件名

[root@localhost games]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月  13 11:23 test1.txt

[root@localhost games]# rm -f test1.txt 

[root@localhost games]# ll
总用量 0

例三:删除多个文件并在删除前逐一询问确认

命令: rm -i *.txt

[root@localhost games]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月  13 11:25 test1.txt
-rw-r--r--. 1 root root 0 5月  13 11:25 test2.txt

[root@localhost games]# rm -i *.txt
rm:是否删除普通空文件 'test1.txt'?y
rm:是否删除普通空文件 'test2.txt'?y

[root@localhost games]# ll
总用量 0

例四:将 test1子目录及子目录中所有文件都删除

命令: rm -r test1

执行 rm -r命令如果该目录里面有文件,会首先进入该目录,把文件删除后再删除该目录。(先删除目录中的文件或子目录再删除该目录)

执行rm -rf 命令时则不会一一确认是否删除。

[root@localhost test]# ll
总用量 0
drwxr-xr-x. 2 root root 23 5月  13 14:06 test1
drwxr-xr-x. 2 root root  6 5月  13 14:06 test2

[root@localhost test]# rm -r test1
rm:是否进入目录'test1'? y
rm:是否删除普通空文件 'test1/test1.txt'?y
rm:是否删除目录 'test1'?y

[root@localhost test]# ll
总用量 0
drwxr-xr-x. 2 root root 6 5月  13 14:06 test2

例五:删除以 t 开头的文件(不能删除目录)

命令: rm — t

[root@localhost test]# ll t*
总用量 0 
-rw-r--r--. 1 root root 0 5月  13 14:15 t
-rw-r--r--. 1 root root 0 5月  13 14:16 t1
drwxr-xr-x. 2 root root  6 5月  13 14:06 test2


[root@localhost test]# rm -- t* 
rm:是否删除普通空文件 't'?y 
rm:是否删除普通空文件 't1'?y 
rm: 无法删除'test2': 是一个目录

 命令:rm ./t

[root@localhost test]# ll t*
总用量 0
-rw-r--r--. 1 root root 0 5月  13 14:20 t2
-rw-r--r--. 1 root root 0 5月  13 14:20 t3
drwxr-xr-x. 2 root root  6 5月  13 14:06 test2

[root@localhost test]# rm ./t* 
rm:是否删除普通空文件 './t2'?y 
rm:是否删除普通空文件 './t3'?y 
rm: 无法删除'./test2': 是一个目录 

[root@localhost test]# ll t* 总用量 0
drwxr-xr-x. 2 root root  6 5月  13 14:06 test2

例六:删除当前目录下除隐含文件外的所有文件和子目录(提醒是否删除,二次确定)

rm -r *

例六:删除某一指定目录下除隐含文件外的所有文件和子目录(强制删除不提醒)

rm -rf 目录/*