rm
是remove
的缩写, rm
命令的功能为删除一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。
对于链接文件,只是删除了链接,原有文件均保持不变。
rm
是一个危险的命令,使用的时候要特别当心,在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,再三核对之后再去执行。
rm [option] [file]
rm [选项] [文件或目录]
DESCRIPTION
-f, --force ignore nonexistent files and arguments, never prompt
#强制删除文件或目录,即使文件属性设为只读也直接删除,不产生提示确认。
-i prompt before every removal
# 删除之前逐一询问确认。
-I prompt once before removing more than three files, or
when removing recursively; less intrusive than -i,
while still giving protection against most mistakes
#如果文件数量超过3个,或者当递归删除时,提示用户。
--interactive[=WHEN] prompt according to WHEN: never, once (-I), or
always (-i); without WHEN, prompt always
#根据WHEN进行提示:never,once(等同于-I),或者always(-i);WHEN不填时,一直提示(always)
--one-file-system when removing a hierarchy recursively, skip any
directory that is on a file system different from
that of the corresponding command line argument
--no-preserve-root do not treat '/' specially
#不对根目录/特别对待
--preserve-root do not remove '/' (default)
#不删除根目录(默认情况)
-r, -R, --recursive remove directories and their contents recursively
#递归地删除目录及其内容
-d, --dir remove empty directories
#删除空目录
-v, --verbose explain what is being done
#输出执行过程
注意:
rm命令的删除是不可逆的,删除前需要再三确认。
所以,平时一定要做好备份,同时少用*
这类通配符进行删除,
默认情况
rm
已经是别名rm is aliased to 'rm -i'
所以,执行rm
就等于执行rm -i
[root@centos7 app]#rm b
rm: remove regular empty file ‘b’? y
[root@centos7 app]#ls
a c f1 f2_hardlink f33~ f5 log11.test program tomhome
b cat.txt f1_softlink f33 f4 fifo_file merrys test.sh
[root@centos7 app]#rm -f c b log11.test
[root@centos7 app]#ls
a f1 f2_hardlink f33~ f5 merrys test.sh
cat.txt f1_softlink f33 f4 fifo_file program tomhome
递归删除,删除目录和目录内文件。
rm默认不能删除目录,需要加上该选项.rm -f
。
[root@centos7 app]#rm -r a
rm: descend into directory ‘a’? y
rm: descend into directory ‘a/dir1’? y
rm: descend into directory ‘a/dir1/dir1’? y
rm: descend into directory ‘a/dir1/dir1/dir2’? y
rm: descend into directory ‘a/dir1/dir1/dir2/dir3’? y
rm: descend into directory ‘a/dir1/dir1/dir2/dir3/dir4’? y
rm: remove directory ‘a/dir1/dir1/dir2/dir3/dir4/dir5’? y
rm: remove directory ‘a/dir1/dir1/dir2/dir3/dir4’? y
rm: remove directory ‘a/dir1/dir1/dir2/dir3’? y
rm: remove directory ‘a/dir1/dir1/dir2’? y
rm: remove regular file ‘a/dir1/dir1/f2’? y
rm: remove regular file ‘a/dir1/dir1/f4’? y
rm: remove regular file ‘a/dir1/dir1/f5’? y
rm: remove directory ‘a/dir1/dir1’? y
rm: remove directory ‘a/dir1’? y
rm: remove regular file ‘a/ls.log’? y
rm: remove directory ‘a’? y
由于没有加-f
,所以每删除一个文件都要提示。
删除空目录,里面有东西,会报错提示,不能删除。
在删除无用目录时,比较实用,比-r安全。
[root@centos7 a]#ls
a1
[root@centos7 a]#cd /app
[root@centos7 app]#rm -d a
rm: cannot remove ‘a’: Directory not empty #不能删除
[root@centos7 app]#cd a
[root@centos7 a]#ls
a1
[root@centos7 a]#rm -f a1
[root@centos7 a]#ls
[root@centos7 a]#cd /app
[root@centos7 app]#ls
a f1 f2_hardlink f33~ f5 merrys test.sh
cat.txt f1_softlink f33 f4 fifo_file program tomhome
[root@centos7 app]#rm -d a
rm: remove directory ‘a’? y
输出的过程,每删除一个就提示一个。
[root@centos7 a]#rm -v a b c d
rm: remove regular empty file ‘a’? y
removed ‘a’
rm: cannot remove ‘b’: Is a directory
rm: remove regular empty file ‘c’? y
removed ‘c’
rm: remove regular empty file ‘d’? y
removed ‘d’
[root@centos7 app]#ls
a f1 f2_hardlink f33~ f5 merrys test.sh
cat.txt f1_softlink f33 f4 fifo_file program tomhome
[root@centos7 app]#rm -rf a
[root@centos7 app]#ls
cat.txt f1_softlink f33 f4 fifo_file program tomhome
f1 f2_hardlink f33~ f5 merrys test.sh
注意:
rm -rf
是递归删除,且强制不提示。 非常危险。
文件一旦通过删除,则无法恢复,所以必须格外小心地使用该命令。