一、命令详解


1.命令说明

rmremove 的缩写, rm 命令的功能为删除一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。

对于链接文件,只是删除了链接,原有文件均保持不变。

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


2.语法格式

rm       [option]      [file]
rm       [选项]        [文件或目录]

3.选项描述

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命令的删除是不可逆的,删除前需要再三确认。
所以,平时一定要做好备份,同时少用*这类通配符进行删除,

案例1:直接删除 #rm

默认情况rm已经是别名 rm is aliased to 'rm -i'
所以,执行rm就等于执行rm -i

[root@centos7 app]#rm b
rm: remove regular empty file ‘b’? y

案例2:强行删除,不再提示 rm -f

[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

案例3:递归删除 rm -r / rm -R

递归删除,删除目录和目录内文件。
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,所以每删除一个文件都要提示。

案例4:删除空目录 #rm -d

删除空目录,里面有东西,会报错提示,不能删除。
在删除无用目录时,比较实用,比-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

案例5:交互提示 #rm -v

输出的过程,每删除一个就提示一个。

[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’



案例6:终极删除 # rm -rf

[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是递归删除,且强制不提示。 非常危险。

文件一旦通过删除,则无法恢复,所以必须格外小心地使用该命令。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐