The Issue of the Day Before

用 fd 替代 find

linux -

sudo apt install fd-find; ln -s $(which fdfind) ~/.local/bin/fd

Why

find 非常強大,前提是你會用。fd 更少的命令參數。

fd PATTERN === find -iname '*PATTERN*'

What

fd

fd 基於 Rust 的 Unix/Linux 命令 find 的替代品。

  • 內定是使用正則表示式(Regular)。

  • 內定忽略隱藏檔名。使用 -H 搜尋隱藏檔。

  • 內定依工作目錄中的 .gitignore 忽略搜尋。使用 -I 忽略 .gitignore

  • PATTERN 沒有大小寫則自動判斷為忽略大小寫。反之則區分大小寫。

How

Install

> sudo apt install fd-find;
> ln -s $(which fdfind) ~/.local/bin/fd

Alt

  • 找當前目錄及其子目錄下的檔名。

find . -name '*mydoc*'fd mydoc

fd 內定是使用正則表示式(Regular)。

  • 搜尋指定目錄下的檔名

find /etc -name '*passwd*'fd passwd /etc

  • 列出目錄下所有檔案

find ~/ -type f =⇒ fd -H . ~/

fd 內定忽略隱藏檔名。使用 -H 搜尋隱藏檔。

  • 只搜尋檔案名稱

find ./ -type f -name *log*fd -tf log

  • 只搜尋目錄名稱

find ./ -type d -name *log*fd -td log

  • 搜尋附檔名

find -name '.md' | grep readmefd -e md readme

  • 對找到的名稱作為參數執行命令

find ./ -type f -name '*.zip' | xargs -i unzip {}fd -e zip -x unzip

  • 忽略特定的子目錄

find . -path './.git' -prune -o -name 'config' -printfd -H -E .git config

fd 使用 -E 排除路徑。

閱讀在雲端