rm
是 Linux 系统中用于删除文件或目录的核心命令,其名称来源于 "remove"(移除),该命令功能强大但操作具有不可逆性,一旦文件被删除,在未提前备份的情况下通常难以恢复,因此使用时需格外谨慎,以下从基本用法、选项参数、高级场景及注意事项等方面详细解析 rm
命令。

基本用法
rm
命令最简单的格式是 rm [文件名]
,用于删除指定文件,删除当前目录下的 test.txt
文件,只需执行:
rm test.txt
如果删除的文件不存在,命令会报错提示 "No such file or directory",若要批量删除多个文件,可将文件名作为参数依次列出,
rm file1.txt file2.txt file3.txt
常用选项参数
rm
命令通过选项参数扩展功能,以下为最常用的选项及其作用:
选项 | 全称 | 功能说明 | 示例 |
---|---|---|---|
-f |
--force |
强制删除,忽略不存在的文件且无需确认,适用于脚本中避免交互提示 | rm -f nonexistent.txt (不报错直接跳过) |
-i |
--interactive |
交互式删除,每次删除前都会询问用户确认(默认行为,若终端为交互式终端) | rm -i test.txt (提示 "remove regular empty file 'test.txt'? ") |
-r / -R |
--recursive |
递归删除,用于删除目录及其所有子目录和文件(必须配合使用,否则无法直接删除目录) | rm -r mydir (删除 mydir 目录及内部所有内容) |
-d |
--dir |
仅删除空目录,若目录非空则报错 | rm -d emptydir (仅当 emptydir 为空时生效) |
-v |
--verbose |
详细模式,显示删除的文件名 | rm -v file1.txt file2.txt (输出 "removed 'file1.txt'" "removed 'file2.txt'") |
参数终止符,用于区分选项和文件名(当文件名以 开头时使用) | rm -- -file (删除文件 -file ) |
高级场景应用
删除目录及其内容
要删除非空目录,必须使用 -r
(或 -R
)选项递归删除,删除包含文件的 mydir
目录:

rm -r mydir
若希望在删除时强制跳过确认提示(如批量清理时),可结合 -f
使用:
rm -rf mydir
注意:rm -rf
是 Linux 中最危险的命令之一,一旦执行,目录及其所有内容将被永久删除,且不会进入回收站,务必确认路径正确。
结合通配符批量删除
通配符(、、[]
等)可配合 rm
实现批量删除。
- 删除所有
.tmp
文件:rm *.tmp
- 删除以
log
开头且扩展名为.txt
的文件:rm log*.txt
- 删除文件名中包含数字的文件:
rm *[0-9]*
⚠️ 警告:使用通配符时需格外谨慎,特别是 rm -rf *
或 rm -rf /*
(误操作会清空整个系统),建议先用 ls
预览匹配的文件,确认无误后再执行删除。

交互式批量删除
对于需要谨慎操作的批量删除场景,可通过 -i
选项逐个确认。
rm -i *.old
命令会逐个提示是否删除每个 .old
文件,输入 y
确认,n
跳过。
删除符号链接
rm
会直接删除符号链接本身,而不会指向的实际文件,若 linkfile
是指向 targetfile
的链接:
rm linkfile # 仅删除 linkfile,targetfile 不受影响
注意事项
- 数据不可逆性:Linux 文件删除后,除非通过专业数据恢复工具(如
extundelete
),否则很难恢复,重要文件务必提前备份。 - 权限问题:删除文件需要对该文件有写权限,且对所在目录有执行权限,若无权限,会提示 "Permission denied"。
- 避免误操作:
- 脚本中慎用
rm -rf
,可先添加set -e
(遇到错误立即退出)或预检查目录是否存在。 - 关键操作前可通过
ls -l
或find
命令确认文件路径。
- 脚本中慎用
- 系统文件保护:切勿尝试删除 (根目录)下的关键文件或目录,可能导致系统崩溃。
相关问答FAQs
Q1: 使用 rm -rf
删除文件后,如何尝试恢复?
A1: rm -rf
删除的文件若未被新数据覆盖,可通过以下方式尝试恢复:
- ext4 文件系统:使用
testdisk
或extundelete
工具,安装extundelete
后,执行extundelete --restore-all /dev/sdX
(/dev/sdX
为文件系统所在设备)。 - xfs 文件系统:使用
xfsdump
和xfsrestore
,或专业工具如PhotoRec
。
注意:恢复成功率取决于文件是否被覆盖,操作前应卸载或只读挂载文件系统,避免新数据写入覆盖原文件。
Q2: 为什么执行 rm
命令时提示 "Permission denied"?
A2: 该错误通常由以下原因导致:
- 文件权限不足:当前用户对文件无写权限(可通过
ls -l
检查文件权限,若为-rw-r--r--
,则所有者或 root 可删除)。 - 目录权限不足:删除文件需要对所在目录有执行权限(
x
),否则无法访问目录内容。
解决方法:
- 若文件属于当前用户:
chmod u+w file
添加写权限后删除。 - 若文件属于其他用户:使用
sudo rm file
(需 sudo 权限)。 - 若目录权限不足:
sudo chmod +x /path/to/directory
后再删除。