Skip to content

Commit 08980a0

Browse files
kaixinbaba521xueweihan
authored andcommitted
fix
1 parent 1d82ad5 commit 08980a0

File tree

3 files changed

+31
-41
lines changed

3 files changed

+31
-41
lines changed

contents/Rust/fd/content.md

Lines changed: 31 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 开源文件搜索神器
1+
# 开源文件搜索神器 —— fd
22

33
![](./images/1.jpeg)
44

@@ -16,7 +16,7 @@
1616

1717
![](./images/2.svg)
1818

19-
fd 是一个命令行工具,提供了多种方便的选项进行文件的搜索。项目本身是由 Rust 语言编写的,作为系统级编程语言 Rust 拥有媲美 C++ 的运行速度,那 fd 的速度自然也不在话下,更优秀的是,他提供了强大功能方便用户按照各种条件进行搜索。
19+
fd 是一个命令行工具,提供了多种方便的选项进行文件的搜索,而且默认是彩色输出。项目本身是由 Rust 语言编写的,作为系统级编程语言 Rust 拥有媲美 C++ 的运行速度,那 fd 的速度自然也不在话下,更优秀的是,他提供了强大功能方便用户按照各种条件进行搜索。
2020

2121
这个优秀的项目是不是成功的引起了你的注意呢~
2222

@@ -42,7 +42,7 @@ $ brew install fd
4242
$ brew upgrade fd
4343
```
4444

45-
具体各个平台的你可以看这里 [安装](https://github.com/chinanf-boy/fd-zh#%E5%AE%89%E8%A3%85)
45+
具体到各个平台的详细安装方法,你可以看这里 [安装文档](https://github.com/chinanf-boy/fd-zh#%E5%AE%89%E8%A3%85)
4646

4747
### 2.2 源码安装
4848

@@ -54,7 +54,7 @@ $ cargo install --path .
5454

5555
### 2.3 查看帮助
5656

57-
无论哪种方式安装完成后,就可以直接使用了 `-h``--help` 获取帮助了,`--help` 就不演示了,区别就是换成了详细的帮助说明
57+
无论哪种方式安装完成后,就可以直接使用了 `-h``--help` 获取帮助了,`--help` 就不演示了,区别就是换成了详细的帮助说明,如果你以后忘记了某一个参数也记得使用 `--help` 来查看哦~
5858

5959
```
6060
$ fd -h
@@ -71,7 +71,9 @@ FLAGS:
7171

7272
## 三、fd 快速上手演示
7373

74-
为了能让之后的演示有一个统一的认识,我这里新建了一个目录作为 fd 的测试目录,我虚构了一些文件和目录来模拟实际情况,该目录大致是这样,包括一个隐藏目录,我之后的演示都会基于该根目录下,选项如果有短名称和长名称,示例中以短名称为例
74+
为了能让之后的演示有一个统一的认识,我这里新建了一个目录作为 fd 的测试目录,我虚构了一些文件和目录来模拟实际情况,包括一个隐藏目录,我之后的演示都会基于该根目录下,选项如果有短名称和长名称,示例中以短名称为例。
75+
76+
该目录大致是这样
7577

7678
```
7779
.
@@ -109,7 +111,7 @@ FLAGS:
109111

110112
### 3.1 简单搜索
111113

112-
`fd` 直接跟想要搜索的内容,会递归搜索当前目录下的所有文件,列出文件名中包含目标内容的结果(结果当前目录的相对路径
114+
`fd` 直接跟想要搜索的内容,会递归搜索当前目录下的所有文件,列出文件名中包含目标内容的结果(结果为当前目录的相对路径
113115

114116
```
115117
$ fd Hello
@@ -133,7 +135,7 @@ java/Hello.java
133135

134136
### 3.3 大小写
135137

136-
默认 `fd` 是匹配智能大小写的,如果你指定的是大写会按照精确匹配,但如果你指定的是小写会忽略大小写匹配,所以 `fd` 提供了两种选项来严格控制大小写匹配
138+
默认 `fd` 是匹配智能大小写的,如果你搜索的内容的是包含大写会按照大小写精确匹配,但如果是小写会忽略大小写匹配,所以 `fd` 另外提供了两种选项来严格控制大小写匹配
137139

138140
选项 `-i`` --ignore-case`,忽略大小写
139141

@@ -153,7 +155,7 @@ hello_fd.md
153155
hello_java.md
154156
```
155157

156-
### 3.4 返回完整绝对路径
158+
### 3.4 返回绝对路径
157159

158160
选项 `-a`` --absolute-path`
159161

@@ -163,7 +165,7 @@ $ fd -a Hello
163165
/Users/junjiexun/fd_test/java/Hello.java
164166
```
165167

166-
### 3.5 返回详细文件列表
168+
### 3.5 返回文件列表详情
167169

168170
选项 `-l`` --list-details`,获得类似 `ls -l` 的效果
169171

@@ -175,9 +177,11 @@ $ fd -l hello
175177
-rw-r--r-- 1 junjiexun staff 0B 3 1 18:38 java/Hello.java
176178
```
177179

178-
### 3.6 搜索内容包含全路径
180+
### 3.6 搜索内容包含路径
181+
182+
选项 `-p`` --full-path`,不单单搜索文件名,还列出目录中包含目标内容的结果
179183

180-
选项 `-p`` --full-path`
184+
因为这个测试的目录就在 `/Users/junjiexun` 下面,所以这样搜索相当于全部的文件都会被搜索出来
181185

182186
```
183187
$ fd xun
@@ -187,33 +191,15 @@ dir1
187191
dir1/Hello.java
188192
dir1/World.java
189193
dir1/dir2
190-
dir1/dir2/demo.py
191-
dir1/dir2/demo1.py
192-
dir1/dir2/dir3
193-
dir1/dir2/dir3/fd_demo.rs
194-
dir1/dir2/dir3/fd_help.rs
195-
dir1/dir2/sss.py
196-
hello_fd.md
197-
hello_java.md
198-
java
199-
java/Hello.java
200-
java/World.java
201-
my_java.txt
202-
python
203-
python/demo.py
204-
python/demo1.py
205-
python/sss.py
206-
rust
207-
rust/fd_demo.rs
208-
rust/fd_help.rs
209-
softdir3
210-
sss.py
194+
...(略)
211195
```
212196

213197
### 3.7 包括 .gitignore 里的文件
214198

215199
选项 `-I`` --no-ignore`,我这里新建了一个 `.gitignore` 文件内容只有一个 `*.java` 用来演示,并且需要把当前目录通过 `git init` 初始化成 git 的项目
216200

201+
不加该参数,可以看到结果集中 `.java` 的文件都被过滤了
202+
217203
```
218204
$ fd java
219205
hello_java.md
@@ -234,9 +220,9 @@ java/World.java
234220
my_java.txt
235221
```
236222

237-
`-I` 功能我演示完了,我就将 `.gitignore``.git` 目录给删除了。
223+
`-I` 功能我演示完了,为了之后的演示,我将 `.gitignore``.git` 目录给删除了。
238224

239-
这些简单的功能已经可以一半的日常搜索需求了,接下来我们看看 `fd` 提供的更高级的搜索选项吧
225+
这些简单的功能已经可以满足一半的日常搜索需求了,接下来我们看看 `fd` 提供的更高级的搜索选项吧
240226

241227
![](./images/4.gif)
242228

@@ -262,7 +248,7 @@ rust/fd_help.rs
262248

263249
### 4.2 按文件类型
264250

265-
选项 `-t`` --type <filetype>`一共有以下几种 `filetype` 选项
251+
选项 `-t`` --type <filetype>``fd` 提供了以下几种 `filetype` 选项
266252

267253
- f:file
268254
- d:directory
@@ -349,7 +335,7 @@ drwxr-xr-x 6 junjiexun staff 192B 3 1 18:42 dir1/dir2
349335
...(略)
350336
```
351337

352-
或者 `fd -l -o junjiexun:staff` 也可以达到同样的效果,但是 `fd` 不支持单独搜索 group,也不支持通配符
338+
或者 `fd -l -o junjiexun:staff` 也可以达到同样的效果,但是 `fd` 不支持单独搜索 group,也不支持通配符,如果你有想法的话可以给他提 issue 哦~
353339

354340
### 4.6 组合命令
355341

@@ -367,11 +353,11 @@ $ fd java -X rm -rf
367353
$ fd py -X vim
368354
```
369355

370-
还可以使用诸如 `unzip``ls``convert` 等等其他常用的命令,也可以直接使用 `|` 管道符语法进一步处理。
356+
还可以使用诸如 `unzip``ls``convert` 等等其他常用的命令,也可以直接使用 *unix 语法 `|` 管道符语法进一步处理。
371357

372358
### 4.7 正则表达式
373359

374-
对于文件的内容搜索,我之前演示的是诸如 Hello、java、py 这样的完整文本,实际 `fd` 默认就是支持正则表达式对内容进行搜索的,但是正则表达式需要使用单引号包裹起来,我下面演示下
360+
对于文件的内容搜索,我之前演示的是诸如 Hello、java、py 都是这样的完整文本,实际 `fd` 默认就是支持正则表达式对内容进行搜索的,但是正则表达式需要使用单引号 `'` 包裹起来,我下面演示下
375361

376362
所有 s 开头的文件都能被搜索出来
377363

@@ -395,10 +381,14 @@ softdir3
395381
sss.py
396382
```
397383

384+
上面的选项大部分都是可以同时使用的,我这里就不继续演示了,就当留个作业给大家吧~
385+
386+
![](./images/5.jpeg)
387+
398388
## 五、总结
399389

400-
`fd` 是一个简单友好的命令行文件搜索工具,而且其开源的属性作为 Rust 源码学习的对象也是非常优秀的,给项目点个 star 吧,赶快行动起来吧~
390+
`fd` 是一个简单友好的命令行文件搜索工具,而且其开源的属性作为 Rust 源码学习的对象也是非常优秀的,给这个项目点个 star 吧,赶快行动起来吧~
401391

402-
顺便文章转评赞一波,每一个点赞的人,将来都会大富大贵,一夜暴富
392+
顺便文章转评赞走一波,祝所有点赞的人,身体健康,大富大贵
403393

404-
![](./images/5.png)
394+
![](./images/6.png)

contents/Rust/fd/images/5.jpeg

49.2 KB
Loading
File renamed without changes.

0 commit comments

Comments
 (0)