ウェブサイト検索

fd - Find コマンドのシンプルで高速な代替手段


ほとんどの Linux ユーザーは、find コマンドとそれを使用できるさまざまなケースに精通しています。今日は、fd と呼ばれる find コマンドの代替手段を検討します。

fd は、find と比較して単に高速に実行することを目的とした、シンプル、高速、使いやすいツールです。これは find を完全に置き換えることを目的としたものではなく、少し高速に実行できる使いやすい代替手段を提供します。

fdの特徴

fd の注目すべき機能のいくつかは次のとおりです。

  • 使いやすい構文 – find -iname *pattern* の代わりに fd *pattern* を使用します。
  • カラフルな出力は、ls コマンドの出力に似ています。
  • 高速なパフォーマンス。開発者のベンチマークはここから入手できます。
  • デフォルトでは大文字と小文字を区別しないスマート検索で、パターンに大文字の記号が含まれる場合は大文字と小文字を区別するように切り替わります。
  • デフォルトでは隠しファイルとディレクトリを検索しません。
  • デフォルトでは .gitignore を調べません。
  • ユニコードの認識。

Linux に fd をインストールする方法

ここでは、示されているデフォルトのパッケージ マネージャーを使用して、 さまざまな Linux ディストリビューションに fd をインストールする方法を見ていきます。

sudo apt install fd-find    [On Debian, Ubuntu and Mint]
sudo yum install fd-find    [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a sys-apps/fd  [On Gentoo Linux]
sudo pacman -S fd           [On Arch Linux]
sudo zypper install fd      [On OpenSUSE]  
sudo apk add fd             [On Alpine Linux]    

Linux で fd を使用する方法

find コマンドと同様に、fd には多くの使用例がありますが、利用可能なオプションを確認することから始めましょう。

fd -h
OR
fd --help

いくつかの例を見てみましょう。引数なしで fd を実行できます。出力は ls -R コマンドとよく似ています。

fd

次の fd の例では、/var/www/html/ にあるデフォルトの WordPress インストールを使用して、さまざまなファイルとフォルダーを検索します。

以下の例では、head コマンドでパイプ リダイレクトを使用して、短い出力の最初の 10 件の結果のみを出力しています。

fd | head

Linux ですべての JPG ファイルを検索する

すべての jpg ファイルを検索したいとします。 “-e ” フラグを使用して、ファイル拡張子でフィルタリングできます。

fd -e jpg

検索ディレクトリを指定したい場合は、それを引数として指定するだけです。

fd <pattery> <directory>

Linux ですべての PHP ファイル内の文字列を検索する

“-e ” フラグは、次のようにパターンと組み合わせて使用できます。

fd -e php index

上記のコマンドは、拡張子が .php で、その中に文字列「index 」が含まれるファイルを検索します。

一部の結果を除外したい場合は、次のように “-E ” フラグを使用できます。

fd -e php index -E wp-content

このコマンドは、文字列「index 」を含む php 拡張子を持つすべてのファイルを検索し、「wp-content 」ディレクトリからの結果を除外します。

すべての JPG ファイルを検索して権限を変更する

find と同様に、-x または --exec 引数を使用して、検索結果を使用してコマンドを並列実行できます。

以下は、chmod を使用して画像ファイルのアクセス許可を変更する例です。

fd -e jpg -x chmod 644 {}

上記のコードでは、拡張子が jpg のすべてのファイルが検索され、chmod 644 が実行されます。

ここでは、括弧の便利な説明と使用法をいくつか示します。

  • {} – 検索結果のパス (wp-content/uploads/01.jpg) で変更されるプレースホルダー。
  • {.}{} に似ていますが、ファイル拡張子 (wp-content/uploads/01) を使用しません。
  • {/}: 検索結果 (01.jpg) のベース名に置き換えられるプレースホルダー。
  • {//}: 検出されたパスの親ディレクトリ (wp-content/uploads)。
  • {/.}: 拡張子 (01) を除いたベース名のみ。
結論

以上、fd コマンドの簡単なレビューでした。ユーザーによっては、このコマンドの方が使いやすく高速だと感じるかもしれません。この記事の前半で述べたように、fdfind を完全に置き換えることを目的としたものではなく、シンプルな使用法、より簡単な検索、より優れたパフォーマンスを提供するものです。 Fd はスペースを取らないので、備えておくと便利なツールです。