0010. shell命令--rm

目录

10. shell命令--rm

功能说明

语法格式

选项说明

实践操作

注意事项


10. shell命令--rm

功能说明

        rm 命令来自英文单词 remove 的缩写,中文译为“消除”,rm 是 Linux 和其他类 Unix 系统中用于删除文件或目录的命令。在使用 rm 命令时,请务必小心,因为一旦文件或目录被删除,就无法恢复(除非有备份或使用了某些特殊的数据恢复技术)。所以我们在执行之前一定要再次确认在在哪个目录中、到底要删除什么文件,考虑好后再敲击Enter键,要时刻保持清醒的头‍脑

语法格式

rm [选项]... 文件...

SYNOPSIS
   rm [OPTION]... FILE...

选项说明

  • -r 或 -R:递归删除目录及其内容。
  • -d:仅删除无子文件的空目录。
  • -f:强制删除,不提示用户。
  • -i:在删除每个文件之前提示用户。
  • -v:详细模式,显示正在删除的文件名。
  • --preserve-root:不删除 / 目录,即使指定了 -r 或 -R 选项。
  • --no-preserve-root:允许删除根目录(危险)。
  • --interactive[=WHEN]:指定何时提示用户。WHEN 可以是 always、never 或 once;如果没有 WHEN,则等同于 always。
  • --one-file-system:当递归删除时,仅在当前文件系统上操作。
  • --directory:允许删除空目录。
  • --help:显示帮助信息。
  • --version:显示版本信息。

实践操作

1. 直接执行 rm 的例子
mkdir -p /test/rm    #创建测试目录
cd /test/rm   #切换到测试目录
touch file{1..8}.txt    #创建多个文件
ls    #查看一下
rm file8.txt    #直接删除,会有提示,输入y确认,输入n取消,演示写 y 
ls    #查看一下
alias rm    #查看一下系统别名
\rm file7.txt    #取消别名,这下就可以直接删除了
ls    #查看一下

2. 强制删除的例子(参数 -f )
rm -f file6.txt    #加上参数 -f 可以强制删除
ls    #查看一下
rm -f file3.txt file4.txt file5.txt    #也可以一次删除多个文件
ls    #查看一下
touch file{3..6}.txt    #再次创建一些
ls
rm -f file{2..6}.txt    #这样也可以删除多个文件
ls
rm -f *    #删除所有,这里就剩下一个文件了,但是却是有多少删除多少。慎用哦!
ls

3. 递归删除的例子
mkdir dir{1..3}    #创建一些实验目录
ls
rm dir3    #不加参数删除目录试试( rm: cannot remove 'dir3': Is a directory )不能删除哦
ls
rm -f dir3    #强制删除目录也不行?
rm -r dir3    #参数 -r 是删除目录用的,按 y 确认,按 n 取消,演示选择 y
ls
mkdir -p dir{1,2}/a/b    #再建一些实验目录
tree    #使用这个命令看一下,如果没有,可以使用 yum install -y tree 安装,再不行可以网上找一下方法
rm -r dir1/    #目录下还有目录,这时就递归删除了,演示选 y
ls
rm -rf dir2/    #这样的组合无敌,使用时一定要慎之又慎!!!
ls

命令示例:1. 直接执行 rm 的例子

mkdir -p /test/rm    
cd /test/rm   
touch file{1..8}.txt    
ls    
rm file8.txt    
ls   
alias rm    
\rm file7.txt    
ls 

输出结果:

[root@MineGi ~]# mkdir -p /test/rm
[root@MineGi ~]# cd /test/rm
[root@MineGi /test/rm]# touch file{1..8}.txt
[root@MineGi /test/rm]# ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt  file6.txt  file7.txt  file8.txt
[root@MineGi /test/rm]# rm file8.txt 
rm:是否删除普通空文件 "file8.txt"?y
[root@MineGi /test/rm]# ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt  file6.txt  file7.txt
[root@MineGi /test/rm]# alias rm
alias rm='rm -i'
[root@MineGi /test/rm]# \rm file7.txt 
[root@MineGi /test/rm]# ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt  file6.txt
[root@MineGi /test/rm]#

命令示例:2. 强制删除的例子(参数 -f )

rm -f file6.txt    
ls    
rm -f file3.txt file4.txt file5.txt    
ls    
touch file{3..6}.txt    
ls
rm -f file{2..6}.txt    
ls
rm -f *    
ls

输出结果:

[root@MineGi /test/rm]# rm -rf file6.txt 
[root@MineGi /test/rm]# ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt
[root@MineGi /test/rm]# rm -f file3.txt file4.txt file5.txt 
[root@MineGi /test/rm]# ls
file1.txt  file2.txt
[root@MineGi /test/rm]# touch file{3..6}.txt    
[root@MineGi /test/rm]# ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt  file6.txt
[root@MineGi /test/rm]# rm -f file{2..6}.txt  
[root@MineGi /test/rm]# ls
file1.txt
[root@MineGi /test/rm]# rm -f * 
[root@MineGi /test/rm]# ls
[root@MineGi /test/rm]#

命令示例:3. 递归删除的例子

mkdir dir{1..3}    
ls
rm dir3    
ls
rm -f dir3    
rm -r dir3    
ls
mkdir -p dir{1,2}/a/b    
tree    
rm -r dir1/    
ls
rm -rf dir2/    
ls

输出结果:

[root@MineGi /test/rm]# mkdir dir{1..3}    
[root@MineGi /test/rm]# ls
dir1  dir2  dir3
[root@MineGi /test/rm]# rm dir3    
rm: 无法删除"dir3": 是一个目录
[root@MineGi /test/rm]# ls
dir1  dir2  dir3
[root@MineGi /test/rm]# rm -f dir3 
rm: 无法删除"dir3": 是一个目录
[root@MineGi /test/rm]# rm -r dir3 
rm:是否删除目录 "dir3"?y
[root@MineGi /test/rm]# ls
dir1  dir2
[root@MineGi /test/rm]# mkdir -p dir{1,2}/a/b 
[root@MineGi /test/rm]# tree
.
├── dir1
│?? └── a
│??     └── b
└── dir2
    └── a
        └── b

6 directories, 0 files
[root@MineGi /test/rm]# rm -r dir1/ 
rm:是否进入目录"dir1/"? y
rm:是否进入目录"dir1/a"? y
rm:是否删除目录 "dir1/a/b"?y
rm:是否删除目录 "dir1/a"?y
rm:是否删除目录 "dir1/"?y
[root@MineGi /test/rm]# ls
dir2
[root@MineGi /test/rm]# rm -rf dir2/    
[root@MineGi /test/rm]# ls
[root@MineGi /test/rm]#

注意事项

  • 使用 rm 命令删除目录时,请确保使用 -r 或 -R 选项,否则 rm 会报错并提示“是一个目录”。
  • 当你使用通配符(如 *)时,务必小心,以免意外删除不想删除的文件。
  • 使用 -f 选项时要特别小心,因为它会绕过所有的提示,直接删除文件或目录。
  • 始终建议在进行删除操作之前备份重要数据。

        最后,再次强调,使用 rm 命令时一定要谨慎,确保你知道自己在删除什么,以及这些文件或目录是否可以被安全地删除。始终建议在执行删除操作前备份重要数据,并在可能的情况下使用版本控制系统或快照来管理文件和目录的变更。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MineGi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值