最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

一款開(kāi)源的文件搜索神器,終于不用記 find 命令了

2022-05-18 10:11 作者:HelloGitHub  | 我要投稿


這是 HelloGitHub 推出的《講解開(kāi)源項(xiàng)目》系列,用一篇文章帶你快速上手有趣的開(kāi)源項(xiàng)目。

今天給大家推薦一個(gè)好用+開(kāi)源的文件搜索工具:


fd 支持大多數(shù)主流操作系統(tǒng),快來(lái)更新你的工具箱感受開(kāi)源項(xiàng)目帶來(lái)的便利吧!

一、fd 簡(jiǎn)介

你還在為尋找文件而煩惱嗎?你還在為記不住 find 一大堆參數(shù)而煩惱嗎?那就趕快來(lái)看看我這次推薦的項(xiàng)目 fd 吧!

官方簡(jiǎn)介:A simple, fast and user-friendly alternative to 'find'

我這里先放一個(gè)圖,讓大家直觀地感受下


fd 是一個(gè)命令行工具,提供了多種方便的選項(xiàng)進(jìn)行文件的搜索,而且默認(rèn)是彩色輸出。項(xiàng)目本身是由 Rust 語(yǔ)言編寫的,作為系統(tǒng)級(jí)編程語(yǔ)言 Rust 擁有媲美 C++ 的運(yùn)行速度,那 fd 的速度自然也不在話下,更優(yōu)秀的是,它提供了強(qiáng)大的功能方便用戶按照各種條件進(jìn)行搜索。


這個(gè)優(yōu)秀的項(xiàng)目是不是成功地引起了你的注意呢~

二、fd 如何安裝

作為使用的第一步當(dāng)然是要先安裝啦~

fd 提供了各個(gè)操作系統(tǒng)平臺(tái)的安裝方式,再不濟(jì)可以直接通過(guò)源碼進(jìn)行安裝(前提是有 Rust 的環(huán)境噢)

2.1 一鍵安裝

我這里以我本地的 Mac 使用 brew 為例

$ brew install fd

brew 也可以一鍵升級(jí)

$ brew upgrade fd

具體到各個(gè)平臺(tái)的詳細(xì)安裝方法,你可以看這里 安裝文檔

2.2 源碼安裝

$ git clone https://github.com/sharkdp/fd.git
$ cd fd$ cargo install --path .

2.3 查看幫助

無(wú)論哪種方式安裝完成后,就可以直接使用了 -h--help 獲取幫助了,--help 就不演示了,區(qū)別就是換成了詳細(xì)的幫助說(shuō)明,如果你以后忘記了某一個(gè)參數(shù)也記得使用 --help 來(lái)查看哦~


三、fd 快速上手演示

為了能讓之后的演示有一個(gè)統(tǒng)一的認(rèn)識(shí),我在這里新建了一個(gè)目錄作為 fd 的測(cè)試目錄,我虛構(gòu)了一些文件和目錄來(lái)模擬實(shí)際情況,包括一個(gè)隱藏目錄,我之后的演示都會(huì)基于該根目錄下,選項(xiàng)如果有短名稱和長(zhǎng)名稱,示例中以短名稱為例。

該目錄大致是這樣:


3.1 簡(jiǎn)單搜索

fd 直接跟想要搜索的內(nèi)容,會(huì)遞歸搜索當(dāng)前目錄下的所有文件,列出文件名中包含目標(biāo)內(nèi)容的結(jié)果(結(jié)果為當(dāng)前目錄的相對(duì)路徑)

$ fd Hello
dir1/Hello.java
java/Hello.java

3.2 包含隱藏目錄

選項(xiàng) -H--hidden


3.3 大小寫

默認(rèn) fd 是匹配智能大小寫的,如果你搜索的內(nèi)容是包含大寫會(huì)按照大小寫精確匹配,但如果是小寫會(huì)忽略大小寫匹配,所以 fd 另外提供了兩種選項(xiàng)來(lái)嚴(yán)格控制大小寫匹配



3.7 包括 .gitignore 里的文件

選項(xiàng) -I--no-ignore 我這里新建了一個(gè) .gitignore 文件內(nèi)容只有一個(gè) *.java 用來(lái)演示,并且需要把當(dāng)前目錄通過(guò) git init 初始化成 git 的項(xiàng)目。


這些簡(jiǎn)單的功能已經(jīng)可以滿足一半的日常搜索需求了,接下來(lái)我們看看 fd 提供的更高級(jí)的搜索選項(xiàng)吧!


四、高級(jí)搜索選項(xiàng)

4.1 按深度

選項(xiàng) -d--max-depth <depth>,當(dāng)前路徑算深度 1,dir3 下面的 rs 文件就是深度 4 了。


4.2 按文件類型

選項(xiàng) -t--type <filetype>,fd 提供了以下幾種 filetype 選項(xiàng):

  • f:file
  • d:directory
  • l:symlink
  • x:executable
  • e:empty
  • s:socket
  • p:pipe


可以看到所有的 rust、rs、sss、soft 都沒(méi)有出現(xiàn)在結(jié)果集中。

4.5 按所有者

選項(xiàng) -o--owner <user:group>


或者 fd -l -o junjiexun:staff 也可以達(dá)到同樣的效果,但是 fd 不支持單獨(dú)搜索 group,也不支持通配符,如果你有想法的話可以給他提 issue 哦~

4.6 組合命令

fd 提供了 -x--exec <cmd>、-X--exec-batch <cmd> 來(lái)進(jìn)行對(duì)搜索結(jié)果集的進(jìn)一步處理

找到所有和 java 匹配的內(nèi)容并且刪除!(僅僅用做演示,rm -rf 慎用)

$ fd java -X rm -rf

找到所有的 py 并且通過(guò) vim 打開(kāi)

$ fd py -X vim

還可以使用諸如 unzip、ls、convert 等等其他常用的命令,也可以直接使用 *unix 語(yǔ)法 | 管道符語(yǔ)法進(jìn)一步處理。

4.7 正則表達(dá)式

對(duì)于文件的內(nèi)容搜索,我之前演示的是諸如 Hello、java、py 都是這樣的完整文本,實(shí)際 fd 默認(rèn)就是支持正則表達(dá)式對(duì)內(nèi)容進(jìn)行搜索的,但是正則表達(dá)式需要使用單引號(hào) ' 包裹起來(lái),我下面演示:將所有 s 開(kāi)頭的文件都能被搜索出來(lái)。


上面的選項(xiàng)大部分都是可以同時(shí)使用的,篇幅有限我這里就不繼續(xù)演示了。

五、總結(jié)

fd 是一個(gè)簡(jiǎn)單友好的命令行文件搜索工具,而且其開(kāi)源的屬性作為 Rust 源碼學(xué)習(xí)的對(duì)象也是非常優(yōu)秀的,趕緊學(xué)起來(lái)!覺(jué)得本文還不錯(cuò)的話,轉(zhuǎn)評(píng)贊走一波!

一款開(kāi)源的文件搜索神器,終于不用記 find 命令了的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
六盘水市| 汕头市| 镇安县| 海原县| 土默特右旗| 任丘市| 平山县| 台湾省| 平阴县| 治多县| 昭平县| 柏乡县| 福清市| 云和县| 咸阳市| 沙洋县| 齐河县| 秦皇岛市| 红原县| 广丰县| 德保县| 丹阳市| 石家庄市| 常熟市| 民乐县| 涞源县| 建平县| 修水县| 沂南县| 怀化市| 辉县市| 南昌市| 凌云县| 大连市| 阆中市| 永宁县| 西峡县| 天长市| 铁力市| 上林县| 慈溪市|