概述
rm
命令可用于删除文件或目录,是 remove
的缩写。
语法
rm
命令的语法如下:rm [选项] 文件或目录
。
该命令支持的选项有:
选项 | 说明 |
---|---|
-d | 删除目录 |
-f | 强制删除文件或目录,忽略不存在的文件,不提示删除确认信息 |
-i | 删除文件或目录之前询问用户进行确认,默认 rm 命令就会询问 |
-I | 在删除超过三个文件或递归删除前要求确认 |
-r | 递归删除,将指定目录下的所有文件及其子目录一并删除 |
-v | 显示删除指令 rm 的执行过程 |
–help | 显示帮助信息 |
–version | 显示版本信息 |
注:谨慎使用
rm -rf
命令,不要删库跑路。
使用
删除文件【★★★★★】
删除文件,执行如下指令,在删除前会进行交互,确认是否真的要删除,如果真的要删除输入 y
进行确认:
rm 文件名
删除目录【★★★★★】
也可以直接删除目录,通常我们会要求删除目录及目录下的所有子文件和子目录,所以必须加上 -r
选项,递归删除。
rm -r 目录名
删除不确认【★★★★★】
像我们上面删除一个目录,如果目录下有多个子文件和子目录,每一个都需要确认一遍,非常麻烦,所以如果我们想要直接删除,不询问确认信息,那么直接使用 -f
选项即可,即可强制删除,无论是文件还是目录:
# 删除文件不确认
rm -f 文件名
# 删除目录不确认
rm -rf 目录名
删除指定后缀的所有文件
在删除中,我们除了指定确定的文件名或目录名外,还可以使用通配符,如 *
表示所有。如下:
# 表示删除当前目录下的所有文件和目录
rm -rf *
# 表示删除所有以 .txt 后缀结尾的文件
rm -rf *.txt
删除指定开头的文件
我们也可以删除以指定字符或字符串开头的文件,使用语法如下:
# 删除以 "hello" 开头的所有文件
rm -- hello*
# 删除以 "hello" 开头的所有文件,另外一种语法
rm ./hello*
删除隐藏文件
注意,rm -rf *
命令是删除不掉隐藏文件和文件夹的。如果要删除掉当前目录下的所有隐藏文件和目录,需要执行如下命令:
rm -rf .*
但仍然不会删除掉 .
和 ..
这两个目录。
如果要删除 /home
目录下所有以 .tar.gz
后缀结尾的隐藏文件,可以执行如下命令:
rm -rf /home/.*.tar.gz