功能说明:

rm命令可以理解为remove的缩写,其功能是删除一个或者多个文件或目录。这是Linux系统里面最危险的命令之一,请慎重使用。

语法格式:

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

参数说明:
  • -f:强制删除,忽略不存在的文件,不提示确认
  • -i:删除前需要确认
  • -I:在删除超过三个或递归删除前需要确认
  • -r:递归删除目录及其内容
  • -v:显示命令执行的过程
实践经验:
  • 1、用mv代替rm,不要急着删除,而是先移动到回收站/tmp
  • 2、删除前务必备份,最好是异机备份,若出现文件随时可以还原
  • 3、如果非要删除,那么请使用find代替rm。下面是生产环境中删除目录或文件的较安全的方法:
  • find . -type f -name “*.txt” -mtime +7|xargs rm -f
  • find . -type f mtime +7 -exec rm {} \;
  • 4、如果非要使用rm命令删除,那么请先切换目录再删除,能不用通配符的就不用。对文件的删除禁止使用rm -rf 文件名。最多使用rm -f 文件名,推荐使用rm 文件名;
  • 5、通配符一定要检查清楚,不要多了空格会出现删除当前目录的所有文件
  • 6、要慎重使用 rsync —delete
使用示例:
1、不带删除删除文件,会提示,主要是系统定义的别名
[root@localhost test]# rm file6.txt 
rm:是否删除普通空文件 "file6.txt"?y
[root@localhost test]# ls
dir2  dir5  file7.txt  file8.txt  file9.txt
[root@localhost test]# alias rm
alias rm='rm -i'

2、-f进行强制删除,则不会提示
[root@localhost test]# rm -f file7.txt 
[root@localhost test]# ls
dir2  dir5  file8.txt  file9.txt

3、删除一个目录,目录不为空目录,就会提示,所以最后加上-r进行递归删除,每一步都需要确认
[root@localhost test]# rm dir2
rm: 无法删除"dir2": 是一个目录
[root@localhost test]# rm -r dir2
rm:是否进入目录"dir2"? y
rm:是否删除目录 "dir2/dir1"?y
rm:是否删除目录 "dir2/dir3"?y
rm:是否删除目录 "dir2"?y
[root@localhost test]# ls
dir5  file8.txt  file9.txt

4、递归删除目录和文件,不需要进行提示
[root@localhost test]# rm -rf dir5
[root@localhost test]# ls
file8.txt  file9.txt