删除命令 rm

一、命令详解


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

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

  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中,删除文件和目录的命令rmrm命令可以删除一个目录中的一个或多个文件或目录,也可以删除某个目录及其下的所有文件和子目录。对于链接文件,rm命令只会删除链接,原有文件保持不变。然而,需要注意的是,rm命令是一个危险的命令,使用时需要特别小心,尤其对于新手来说。在执行rm命令之前,最好先确认当前所在的目录和要删除的内容,保持清醒的头脑。如果要递归删除目录及文件并显示删除信息,可以使用rm -vr命令。该命令会提示是否进入目录并删除其中的文件,同时显示删除的信息。例如,执行rm -vr test1命令删除test1目录及其下的文件,并显示删除的信息。 #### 引用[.reference_title] - *1* *2* [Linux命令·rm](https://blog.csdn.net/m0_64560763/article/details/129318390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Linuxrm命令](https://blog.csdn.net/m0_57719465/article/details/123680568)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值