fd:Linux find 命令的替代方案


fd 命令是 Linux 中流行的 find 命令替代方案。它比 find 命令更快、更使用者友好,並且使用 Rust 編寫以提高效能。fd 的一些主要功能包括:使用正則表示式搜尋、更自然的搜尋引數語法以及使用特定副檔名或名稱進行搜尋的能力。

安裝

可以使用發行版的軟體包管理器在 Linux 和 macOS 上安裝 fd 命令。

在基於 Debian 的發行版上 -

sudo apt-get install fd-find

在 Fedora 和 Centos 上 -

sudo yum install fd-find

在 Arch Linux 和 Manjaro 上 -

sudo pacman -S fd

在 MacOS 上 -

brew install fd

或者,您還可以從原始碼安裝 fd,方法是從 GitHub 儲存庫下載最新版本,然後手動構建和安裝它。

cargo install --force fd-find

安裝完成後,您可以在終端中像使用 find 命令一樣使用 fd 命令。

基本用法

fd 命令的基本用法類似於 find 命令。以下是一些示例 -

查詢當前目錄中的所有檔案 -

fd .

查詢具有特定名稱的所有檔案 -

fd testfile

查詢具有特定副檔名的所有檔案 -

fd -e txt

查詢包含特定字串的所有檔案 -

fd -s "test file"

查詢在過去 24 小時內修改的所有檔案 -

fd -t f -mtime -1

查詢所有是目錄的檔案 -

fd -t d

查詢所有是符號連結的檔案 -

fd -t l

fd 命令還有其他一些選項和引數,您可以使用它們來自定義搜尋。您可以透過執行 fd --help 檢視選項的完整列表。

指定搜尋條件

fd 命令允許您指定各種搜尋條件以縮小搜尋結果範圍。以下是一些示例 -

搜尋與特定模式匹配的檔案 -

fd -e txt -p "*.txt"

這將查詢與模式“*.txt”匹配的所有文字檔案。

搜尋大於特定大小的檔案 -

fd -L 10M

這將查詢所有大於 10MB 的檔案。

搜尋小於特定大小的檔案 -

fd -S 1K

這將查詢所有小於 1KB 的檔案。

搜尋在特定時間範圍內修改的檔案 -

fd -t f -mtime +30 -mtime -60

這將查詢所有在 30 到 60 天前修改的檔案。

搜尋具有特定所有者或組的檔案 -

fd -u root

這將查詢所有由使用者“root”擁有的檔案。

搜尋具有特定許可權的檔案 -

fd -x +rwx

這將查詢所有對所有使用者具有讀、寫和執行許可權的檔案。

使用正則表示式搜尋 -

fd -e txt -r "^[a-z]"

這將查詢所有名稱以小寫字母開頭的文字檔案。

使用特定路徑搜尋 -

fd -p "/path/to/directory"

這將查詢目錄“/path/to/directory”及其子目錄中的所有檔案。

遍歷符號連結

預設情況下,fd 命令在搜尋檔案時不會跟隨符號連結。這意味著如果符號連結指向一個目錄,fd 將不會搜尋該目錄的內容。但是,您可以使用 -L 選項告訴 fd 在搜尋檔案時跟隨符號連結。

fd -L -t f

這將查詢所有檔案,包括符號連結指向的目錄中的檔案。

您還可以使用 -H 選項告訴 fd 僅在它們是命令列引數時才遍歷符號連結。

fd -H -t f

當符號連結作為命令列引數傳遞時,這將查詢所有檔案,包括符號連結指向的目錄中的檔案。

您還可以使用 --no-ignore 選項查詢預設情況下被忽略的目錄中的檔案,例如 .git 或 node_modules 資料夾。

fd --no-ignore -t f

您還可以使用 --hidden 選項查詢目錄中的隱藏檔案。

fd --hidden -t f

您也可以組合選項以獲得特定結果。

控制目錄遍歷深度

fd 命令允許您控制搜尋檔案時目錄遍歷的深度。預設情況下,fd 將遞迴搜尋整個目錄樹,但您可以使用 -d 選項指定搜尋的最大深度。

fd -d 2 -t f

這將僅查詢當前目錄和直接子目錄中的所有檔案。

您還可以使用 -D 選項指定搜尋的最小深度。

fd -D 2 -t f

這將僅查詢深度為兩級或更深的所有檔案。

您還可以組合 -d 和 -D 以獲得更具體的結果。

fd -d 2 -D 3 -t f

這將僅查詢深度在兩級到三級之間的所有檔案。

您也可以使用 -maxdepth 選項代替 -d,使用 -mindepth 選項代替 -D 以獲得相同的結果。

fd -maxdepth 2 -mindepth 3 -t f

反轉搜尋結果

fd 命令允許您反轉搜尋結果,這意味著您可以查詢與指定條件不匹配的檔案。您可以使用 -I 選項反轉搜尋結果。

例如 -

fd -I -e txt

此命令將返回所有不是文字檔案的檔案。

另一個示例 -

fd -I -L 10M

此命令將返回所有小於 10MB 的檔案。

您還可以使用 -not 選項反轉搜尋結果。

fd -not -e txt

此命令將返回所有不是文字檔案的檔案。

對搜尋結果執行命令

fd 命令允許您對搜尋結果執行命令。您可以使用 -e 選項指定應在搜尋結果上執行的命令。

例如 -

fd -e cat

此命令將顯示與搜尋條件匹配的所有檔案的內容。

另一個示例 -

fd -e rm

此命令將刪除與搜尋條件匹配的所有檔案。

您還可以使用命令中的變數來表示搜尋結果。變數 {} 將被搜尋結果替換。

fd -e "cat {}"

此命令將顯示與搜尋條件匹配的所有檔案的內容。

另一個示例 -

fd -e "mv {} /path/to/destination"

此命令將把與搜尋條件匹配的所有檔案移動到目錄 /path/to/destination

結論

fd 命令是 Linux 中 find 命令的強大替代方案,它提供了一種更快、更使用者友好的檔案搜尋方式。fd 允許您指定各種搜尋條件,例如檔名、副檔名、大小和修改時間,以及允許您使用正則表示式搜尋、遍歷符號連結、控制目錄遍歷深度、反轉搜尋結果和對搜尋結果執行命令。

更新於: 2023年1月25日

3K+ 閱讀量

開啟您的職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.