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 允許您指定各種搜尋條件,例如檔名、副檔名、大小和修改時間,以及允許您使用正則表示式搜尋、遍歷符號連結、控制目錄遍歷深度、反轉搜尋結果和對搜尋結果執行命令。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP