系列文章目录
命令1: linux基本功系列-ls命令实战
命令2: linux基本功系列之echo命令实战
命令3:linux基本功之历史记录history命令实战
命令4: linux基本功之date命令实战
命令5 linux基本功之touch命令实战
命令6 linux基本功系列之mkdir命令实战
命令7 linux基本功系列之最危险的命令rm
前言
今天我们一起来探讨第7个命令,rm命令, 这个命令也可以归类到文件管理命令中。
要学会游泳,就必须下水。——列宁
To learn to swim, you must be in the water。
一、rm命令是什么?
rm命令是英文单词remove的缩写,其功能是用于删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。
当然这是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意,如执行rm -rf /*命令则会清空系统中所有的文件,甚至无法恢复回来。
一般情况下我们会要求:
- 不要使用 -f 这个参数,确保删除的时候有提示。
- 把需要删除的文件,先移到某个目录,等待段时间,确认不需要的时候再删除
- 使用-rf参数的时候,尽量不要使用通配符,确保安全。
二、rm的常用参数
-f 强制删除(不会询问是否删除)
-i 删除前会询问是否操作
-r/R 递归删除
-v 显示指令的详细参数
三. 应用示范案例
实验环境
[root@mufenggrow test]# touch {1..3}.txt
# 创建3个文件
[root@mufenggrow test]# mkdir a b c
#创建3个目录
[root@mufenggrow test]# ls
1.txt 2.txt 3.txt a b c
[root@mufenggrow test]# cp /etc/passwd a
[root@mufenggrow test]# ls
1.txt 2.txt 3.txt a b c
[root@mufenggrow test]#
当前的目录结构:
1.不加任何参数直接删除
[root@mufenggrow test]# rm 1.txt
rm:是否删除普通空文件 "1.txt"?y
2. 删除目录需要加 -r参数
[root@mufenggrow test]# rm b
rm: 无法删除"b": 是一个目录
[root@mufenggrow test]# rm -r b
rm:是否删除目录 "b"?y
[root@mufenggrow test]#
可以看到不加 -r参数删除目录会报错。
删除有内容的目录:
[root@mufenggrow test]# rm -r a
rm:是否进入目录"a"? y
rm:是否删除普通文件 "a/passwd"?n
rm:是否删除目录 "a"?n
[root@mufenggrow test]#
可以看到如果目录中有内容会先进入目录,提示目录中的内容是否删除
3. 没有任何提示,直接删除 -rf参数
[root@mufenggrow test]# ls
2.txt 3.txt a c
[root@mufenggrow test]# rm -rf a
[root@mufenggrow test]# ls
2.txt 3.txt c
[root@mufenggrow test]#
4. 强制删除的时候加 -i 参数,会增加提示
[root@mufenggrow test]# rm -rfi c
rm:是否删除目录 "c"?y
5. 与rm有关的简单脚本
脚本思路:
- 让用户确认是否删除
- 如果用户确认删除就先备份
- 如果用户不删除就退出
- 如果用户没有按规定输入信息就提示并退出
#!/bin/bash
read -p “是否删除(Y/N)”input
if [ $input == "Y" -o $input == "y" ];then
mv $1 /tmp
echo“$1文件已备份到/tmp"
elif [ $input == "N" -o $input == "n"];then
echo"正在退出..."
else
echo“请输入正确的字符"
exit
fi
总结
以上就是关于rm命令的所有用法,建议把-i参数列为必用参数,什么时候都可以加上,这样系统会提示是否删除,增加了安全性。