UNPKG

3.58 kBMarkdownView Raw
1rm
2===
3
4用于删除给定的文件和目录
5
6## 补充说明
7
8**rm** **命令** 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
9
10注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。
11
12### 语法
13
14```shell
15rm (选项)(参数)
16```
17
18### 选项
19
20```shell
21-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
22-f:强制删除文件或目录;
23-i:删除已有文件或目录之前先询问用户;
24-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
25--preserve-root:不对根目录进行递归操作;
26-v:显示指令的详细执行过程。
27```
28
29### 参数
30
31文件:指定被删除的文件列表,如果参数中含有目录,则必须加上`-r`或者`-R`选项。
32
33### 实例
34
35交互式删除当前目录下的文件test和example
36
37```shell
38rm -i test example
39Remove test ?n(不删除文件test)
40Remove example ?y(删除文件example)
41```
42
43删除当前目录下除隐含文件外的所有文件和子目录
44
45```shell
46# rm -r *
47```
48
49应注意,这样做是非常危险的!
50
51**删除当前目录下的 package-lock.json 文件**
52
53```shell
54find . -name "package-lock.json" -exec rm -rf {} \;
55```
56
57**查找 *.html 结尾的文件并删除**
58
59```shell
60find ./docs -name "*.html" -exec rm -rf {} \;
61```
62
63**删除当前项目下 *.html 结尾的文件**
64
65```shell
66rm -rf *.html
67```
68
69**删除当前目录下的 node_modules 目录**
70
71```shell
72find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
73```
74
75**删除文件**
76
77```shell
78# rm 文件1 文件2 ...
79rm testfile.txt
80```
81
82**删除目录**
83
84> rm -r [目录名称]
85> -r 表示递归地删除目录下的所有文件和目录。
86> -f 表示强制删除
87
88```shell
89rm -rf testdir
90rm -r testdir
91```
92
93**删除操作前有确认提示**
94
95> rm -i [文件/目录]
96
97```shell
98rm -r -i testdir
99```
100
101**批量删除 `icons` 文件夹中的子文件夹中的 data 文件夹**
102
103```shell
104rm -rf icons/**/data
105```
106
107**rm 忽略不存在的文件或目录**
108
109> -f 选项(LCTT 译注:即 “force”)让此次操作强制执行,忽略错误提示
110
111```shell
112rm -f [文件...]
113```
114
115**仅在某些场景下确认删除**
116
117> 选项 -I,可保证在删除超过 3 个文件时或递归删除时(LCTT 译注: 如删除目录)仅提示一次确认。
118
119
120```shell
121rm -I file1 file2 file3
122```
123
124**删除根目录**
125
126> 当然,删除根目录(/)是 Linux 用户最不想要的操作,这也就是为什么默认 rm 命令不支持在根目录上执行递归删除操作。
127> 然而,如果你非得完成这个操作,你需要使用 --no-preserve-root 选项。当提供此选项,rm 就不会特殊处理根目录(/)了。
128
129```shell
130不给实例了,操作系统都被你删除了,你太坏了😆
131```
132
133**rm 显示当前删除操作的详情**
134
135```shell
136rm -v [文件/目录]
137```
138
139