回到手册索引

命令用途

rm(remove)是 Linux/Unix 系统中用于删除文件或目录的命令,可永久移除数据(谨慎使用)。

常用用法示例

  1. 删除单个文件

    1
    rm file1.txt

    直接删除 file1.txt,不提示确认。

  2. 删除多个文件

    1
    rm file1.txt file2.log file3.jpg

    一次性删除多个文件,文件名用空格分隔。

  3. 强制删除忽略提示

    1
    rm -f protected_file

    -f 参数强制删除,忽略不存在的文件或权限错误。

  4. 交互式确认删除

    1
    2
    rm -i important_doc
    rm: remove regular file 'important_doc'? y

    -i 参数要求用户确认每个删除操作(输入 y 确认)。

  5. 递归删除目录及其内容

    1
    rm -r dir1/

    -r 参数递归删除目录(需目录非空)。

  6. 删除空目录

    1
    rm -d empty_dir/

    -d 参数删除空目录(等同 rmdir)。

  7. 显示删除详情

    1
    2
    rm -v temp.log
    removed 'temp.log'

    -v 参数显示操作详情,便于跟踪删除过程。

  8. 防止误删根目录

    1
    2
    rm -rf / --no-preserve-root
    (危险操作!可能输出系统错误或导致数据丢失)

    默认禁止删除根目录,但 –no-preserve-root 会覆盖此保护(切勿随意尝试)。

常用参数选项

  • -f, –force
    强制删除,忽略不存在的文件、权限错误及确认提示。
  • -i, –interactive
    交互模式,删除前逐一确认。
  • -r, -R, –recursive
    递归删除目录及其子内容。
  • -d, –dir
    删除空目录(需配合 -r 删除非空目录)。
  • -v, –verbose
    显示操作详情(如删除的文件名)。
  • –preserve-root
    默认保护根目录 /,防止误删(现代系统默认启用)。
  • –no-preserve-root
    禁用根目录保护(极其危险,慎用!)。
  • –one-file-system
    递归删除时跳过不同文件系统的目录(防止误删挂载点)。

原厂文档

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
NAME

rm - remove files or directories

SYNOPSIS

rm [OPTION]... [FILE]...

DESCRIPTION

This manual page documents the GNU version of rm. rm removes each
specified file. By default, it does not remove directories.

If the -I or --interactive=once option is given, and there are
more than three files or the -r, -R, or --recursive are given,
then rm prompts the user for whether to proceed with the entire
operation. If the response is not affirmative, the entire command
is aborted.

Otherwise, if a file is unwritable, standard input is a terminal,
and the -f or --force option is not given, or the -i or
--interactive=always option is given, rm prompts the user for
whether to remove the file. If the response is not affirmative,
the file is skipped.

OPTIONS

Remove (unlink) the FILE(s).

-f, --force
ignore nonexistent files and arguments, never prompt

-i prompt before every removal

-I prompt once before removing more than three files, or when
removing recursively; less intrusive than -i, while still
giving protection against most mistakes

--interactive[=WHEN]
prompt according to WHEN: never, once (-I), or always (-i);
without WHEN, prompt always

--one-file-system
when removing a hierarchy recursively, skip any directory
that is on a file system different from that of the
corresponding command line argument

--no-preserve-root
do not treat '/' specially

--preserve-root[=all]
do not remove '/' (default); with 'all', reject any command
line argument on a separate device from its parent

-r, -R, --recursive
remove directories and their contents recursively

-d, --dir
remove empty directories

-v, --verbose
explain what is being done

--help display this help and exit

--version
output version information and exit

By default, rm does not remove directories. Use the --recursive
(-r or -R) option to remove each listed directory, too, along with
all of its contents.

Any attempt to remove a file whose last file name component is '.'
or '..' is rejected with a diagnostic.

To remove a file whose name starts with a '-', for example '-foo',
use one of these commands:

rm -- -foo

rm ./-foo

If you use rm to remove a file, it might be possible to recover
some of its contents, given sufficient expertise and/or time. For
greater assurance that the contents are unrecoverable, consider
using shred(1).

AUTHOR

Written by Paul Rubin, David MacKenzie, Richard M. Stallman, and
Jim Meyering.

REPORTING BUGS

GNU coreutils online help:
<https://www.gnu.org/software/coreutils/>
Report any translation bugs to
<https://translationproject.org/team/>

COPYRIGHT

Copyright © 2025 Free Software Foundation, Inc. License GPLv3+:
GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

unlink(1), unlink(2), chattr(1), shred(1)

Full documentation <https://www.gnu.org/software/coreutils/rm>
or available locally via: info '(coreutils) rm invocation'

COLOPHON

This page is part of the coreutils (basic file, shell and text
manipulation utilities) project. Information about the project
can be found at ⟨http://www.gnu.org/software/coreutils/⟩. If you
have a bug report for this manual page, see
⟨http://www.gnu.org/software/coreutils/⟩. This page was obtained
from the tarball coreutils-9.6.tar.xz fetched from
⟨http://ftp.gnu.org/gnu/coreutils/⟩ on 2024-02-02. If you
discover any rendering problems in this HTML version of the page,
or you believe there is a better or more up-to-date source for the
page, or you have corrections or improvements to the information
in this COLOPHON (which is not part of the original manual page),
send a mail to man-pages@man7.org