1.命令作用
删除(取消链接)文件(Remove (unlink) the FILE(s)).
2.命令语法
Usage: rm [OPTION]... FILE...
3.参数详解
OPTION:
- -f, --force,忽略不存在的文件和对象,从不提示;即删除不存在文件时不提示信息
- -i,每次删除前提示信息(默认);如文件不存在提示不存在信息,文件存在提示是否删除信息
- -I,删除或递归删除三个以上文件对象前进行提示;三个文件对象及以下不提示直接删除
- --interactive[=WHEN],WHEN可设置never、once (与-I参数相同)、always (与-i参数相同),没有WHEN,则为always(i)
- --one-file-system,仅删除当前文件系统中的文件,跳过删除其他挂载点中的文件,其作用是避免跨文件系统的删除
- --no-preserve-root,不要特别对待"/",删除,执行删除根目录时,可正常执行,需要与-r递归删除一起使用
- --preserve-root,不要删除"/"目录(默认),执行删除根目录时,提示是危险操作不实际执行删除操作,需要与-r递归删除一起使用
- -r, -R, --recursive,递归地删除目录及其目录下内容
- -d, --dir,删除空白文件夹/目录,如目录为非空则报错提示Directory not empty
- -v, --verbose,解释正在做什么,输出详细信息
4.常用用例
4.1.不存在文件的删除(-f)
## 存在文件file1.txt
[root@node2 Desktop]# ll
total 4
-rw-r--r--. 1 root root 27 Mar 2 12:08 file1.txt
[root@node2 Desktop]#
## 删除一个不存在的文件file2.txt,没有参数提示错误,添加-f参数忽略不存在信息
[root@node2 Desktop]# rm file2.txt
rm: cannot remove ‘file2.txt’: No such file or directory
[root@node2 Desktop]#
[root@node2 Desktop]# rm -f file2.txt
[root@node2 Desktop]#
4.2.空目录的删除(-d)
## dir1目录非空,dir2目录为空
[root@node2 Desktop]# tree *
dir1
└── file1.txt
dir2
0 directories, 1 file
[root@node2 Desktop]#
## 非空目录添加-d参数删除提示为非空目录
[root@node2 Desktop]# rm -d dir1/
rm: cannot remove ‘dir1/’: Directory not empty
[root@node2 Desktop]#
## 空目录添加-d参数可正常删除,如使用"rm -df *"则仅删除空目录且不提示,非空目录不删除
[root@node2 Desktop]# rm -d dir2/
rm: remove directory ‘dir2/’? y
[root@node2 Desktop]# ll
total 0
drwxr-xr-x. 2 root root 23 Mar 2 12:10 dir1
[root@node2 Desktop]#
4.3.递归删除(-r)
[root@node2 Desktop]# tree *
dir1
├── dir2
│ └── file2.txt
└── file1.txt
1 directory, 2 files
[root@node2 Desktop]#
## 递归删除会有提示,每个目录及其文件都要提示
[root@node2 Desktop]# rm dir1/
rm: cannot remove ‘dir1/’: Is a directory
[root@node2 Desktop]# rm -r dir1/
rm: descend into directory ‘dir1/’? y
rm: descend into directory ‘dir1/dir2’? y
rm: remove regular file ‘dir1/dir2/file2.txt’? y
rm: remove directory ‘dir1/dir2’? y
rm: remove regular file ‘dir1/file1.txt’? y
rm: remove directory ‘dir1/’? y
[root@node2 Desktop]# ll
total 0
[root@node2 Desktop]#
4.4.提示方式(-i,-I,-f)
## 删除多个文件使用-i与默认情况是一样的,每个目录和文件删除都需要提示信息
[root@node2 Desktop]# tree *
dir1
├── dir2
│ └── file2.txt
└── file1.txt
1 directory, 2 files
[root@node2 Desktop]# rm -ri dir1/
rm: descend into directory ‘dir1/’? y
rm: descend into directory ‘dir1/dir2’? y
rm: remove regular file ‘dir1/dir2/file2.txt’? y
rm: remove directory ‘dir1/dir2’? y
rm: remove regular file ‘dir1/file1.txt’? y
rm: remove directory ‘dir1/’? y
[root@node2 Desktop]# ll
total 0
[root@node2 Desktop]#
## 删除操过3个文件及目录(总共操过3个对象),仅提示一次,如果不到3个对象,不提示直接删除
[root@node2 Desktop]# tree *
dir1
├── dir2
│ └── file2.txt
└── file1.txt
1 directory, 2 files
[root@node2 Desktop]# rm -rI dir1/
rm: remove 1 argument recursively? y
[root@node2 Desktop]# ll
total 0
[root@node2 Desktop]#
## 直接删除不提示
[root@node2 Desktop]# tree *
dir1
├── dir2
│ └── file2.txt
└── file1.txt
1 directory, 2 files
[root@node2 Desktop]# rm -rf dir1/
[root@node2 Desktop]# ll
total 0
[root@node2 Desktop]#
4.5.根目录的删除(--preserve-root,--no-preserve-root)
## 指定--preserve-root参数或则不指定时删除根目录,会提示非安全操作,且不执行删除
[root@node2 Desktop]# rm -r --preserve-root /
rm: it is dangerous to operate recursively on ‘/’
rm: use --no-preserve-root to override this failsafe
[root@node2 Desktop]#
## 指定--no-preserve-root参数时,允许删除根目录,一般不使用该命令
## 注意:谨慎使用如下命令
[root@node2 Desktop]# rm -r --no-preserve-root /
rm: descend into directory ‘/’?
注意:Linux系统删除时需要谨慎操作,特别是使用如下删除命令时需要特别谨慎
- rm -rf *
- rm -rf --no-preserve-root /