Linux rm 命令 - 删除文件或目录
介绍
rm(英文全拼:remove)命令用于删除一个文件或者目录。
rm 是常用的命令,它可以删除一个指定文件或目录,也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm 是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令。所以,在执行 rm 命令之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
语法:
rm [OPTION]... [FILE]...
选项:
-i
:删除前逐一询问确认。-f
:即使文件属性为只读,也直接删除,无需逐一确认。-r
:将目录及其里面的文件逐一删除。
示例
删除文件:
rm test.txt
删除目录:
rm -r dir/
删除前逐一询问确认:
$ rm -i dir/*
直接删除,不作任何提示:
rm -f test.txt.bz2
清空系统中所有的文件(谨慎!除非你知道自己在干嘛,否则永远不要使用):
rm -rf /*
如果不小心创建了一些特殊文件,可不好删除,比如一个名为 -D
的文件。执行 rm -D
会将文件名误认为选项,这时候可以通过文件的 inode 硬链接编号来删除。
首先,使用 stat 命令查看 inode 号:
文件:./-D
大小:0 块:0 IO 块:4096 普通空文件
设备:816h/2070d Inode:9568258 硬链接:1
权限:(0664/-rw-rw-r--) Uid:( 1000/ rudy) Gid:( 1000/ rudy)
最近访问:2021-04-14 15:12:32.962045401 +0800
最近更改:2021-04-14 15:12:32.962045401 +0800
最近改动:2021-04-14 15:12:32.962045401 +0800
或者,使用 ls 命令加 -i
选项查看 inode 号:
$ ls -il
9568258 -rw-rw-r-- 1 rudy rudy 0 4月 14 15:12 -D
接着使用 find 命令通过 inode 号查找文件并使用 rm 命令删除:
$ find . -inum 9568258 -exec rm -i {} \;
rm:是否删除普通空文件 './-D'? y
为避免删错文件,这里使用了 rm 的交互式删除。
不需要交互时,可以将 rm 后的 -i
选项去掉,或者直接使用 delete 进行删除:
$ find . -inum 9568258 -delete