Linux では、
fd
find
コマンドのより簡単な代替手段です。構文が簡略化され、適切なデフォルトが使用され、常識的な動作が組み込まれています。そのペースを見てみましょう。
fd と find: 違いは何ですか?
fd
コマンドは
、Linux 上でずっと使用されてきた
従来の
find
コマンド
に代わるものではありません
。代わりに、
fd
、より簡単な方法で
find
の一般的な使用法の大部分を満たそうとします。そして、多くの場合、 fd は
find
よりも 8 ~ 9 倍高速です。ベンチマークの一部は、プロジェクトの
GitHub リポジトリ ページ
で確認できます。
fd
には、一部の
ls
モードと同様に、色付けされた出力があります。これは再帰的ですが、デフォルトでは隠しディレクトリは検索しません。
Git について
認識しており、「.gitignore」ファイル内のパターンも自動的に無視します。
fd
はデフォルトで大文字と小文字が区別されません。ただし、検索パターンに大文字が含まれている場合、
fd
大文字と小文字を区別するモードで動作します。もちろん、デフォルトをオーバーライドすることもできますが、多くの場合、デフォルトが有利に機能します。
fdのインストール
Ubuntu 19.04 (Disco Dingo) 以降、公式に保守されているパッケージを呼び出すことで
fd
を直接インストールできます。
apt- get
。古いバージョンの Ubuntu を実行している場合は、 Git ハブのページでインストール手順を 確認してください。
次のように入力します。
sudo apt-get install fd-find
Ubuntu では、別の既存のユーティリティとの名前の衝突を避けるために、コマンドは
fdfind
です。
fd
にしたい場合は、エイリアスを設定できます。
エイリアス fd=fdfind
エイリアスを永続化し、再起動後も使用できるようにするには、エイリアスを「.bashrc」または「.bash_aliases」ファイルに追加します。
Fedora に
fd
をインストールするには、次のコマンドを入力します。
sudo dfn インストール fd-find
Manjaro で次のように入力します。
sudo パックマン -Syu fd
fd と fdfind の比較
混乱を避けるために、Ubuntu テスト PC ではコマンドをデフォルト名
fdfind
のままにしておきます。次の例に示すように、
fd
と
fdfind
はまったく同じコマンドです (
fdfind
にバージョンを表示するように要求すると、fdfind は自分自身を「fd」と呼びます)。
fdfind --version
コマンドを「fed」と呼びますが、例では Ubuntu の「fdfind」を使用します。他の Linux ディストリビューションでは、「fdfind」の代わりに「fd」と入力すると、いくつかのキーストロークを節約できます。
fdによる簡易検索
コマンドライン オプションを指定せずに
fd
を使用すると、デフォルトでサブディレクトリ内のファイルを一覧表示することを除いて、
ls
と少し似た動作になります。
次のように入力します。
fdfind
出力は、ファイルの種類やディレクトリごとに異なる色で表示されます。
特定の種類のファイルを表示するには、
(拡張子) オプションを使用します。拡張子の前にピリオド (.) を付ける必要はなく、大文字と小文字が区別されないことに注意してください。
-e
たとえば、次のように入力できます。
fdfind -e png
現在、リストされているファイルは PNG 画像ファイルのみです。
単一のファイルを検索するには、次のようにコマンド ラインにその名前を入力します。
fdfind インデックス.ページ
ファイルが見つかり、たまたまサブディレクトリにありました。
fd
に再帰的に検索するように指示する必要はありませんでした。
特定のディレクトリで検索を開始するには、コマンド ラインにファイル パスを含めます。次のコマンドは、「/etc」ディレクトリで検索を開始し、ファイル名に「passwd」を含むファイルを探します。
fdfind パスワード /etc
ここでは、ファイル名に「coord」を含むすべての C ソース コード ファイルを検索しています。
fdfind -ec 座標
一致するファイルが 2 つ見つかりました。
fd と Git
Git は、非常に人気のある
ソース コードのバージョン管理システム
です。コンピュータで Git を使用している場合は、おそらく “.gitignore” ファイルを使用して、Git がどのファイルに関係する必要があり、どのファイルを無視してもよいかを Git に指示することになるでしょう。デフォルトでは、
fd
「.gitignore」ファイルの設定を尊重します。
このディレクトリには、Git リポジトリと「.gitignore」ファイルがあります。次のように入力します。
ls -adl .git*
ファイル名に「coord」を含むファイルをリストするように
fd
依頼してみましょう。次に、検索を繰り返し、
-I
(無視しない) オプションを使用します。これにより、
fd
「.gitignore」ファイルの設定を無視し、一致するすべてのファイルを報告するように指示されます。
これらすべてを行うには、次のように入力します。
fd座標を見つける
fdfind 座標 -I
2 番目の結果セット内の 2 つの追加ファイルはオブジェクト ファイルです。これらは、ファイル プログラムのコンパイル時に作成されます。これらは、リンカーによってプログラムの最終実行可能バージョンを作成するために使用されます。
オブジェクト ファイルは通常、ソース コードのバージョン管理プログラムによって無視されます。これらはプログラムをコンパイルするたびに再生成されるため、それらのコピーを保存する必要はありません。 「.gitignore」ファイルには、Git にオブジェクト ファイルを無視するように指示するエントリがあり、デフォルトでは
fd
もオブジェクト ファイルを無視します。
-I
(無視なし) オプションを指定すると、
fd
「.gitginore」ファイルに従うのではなく、検出したものをすべて返すようになります。
ファイルの種類と大文字と小文字の区別
fd
に、ディレクトリ、ファイル (実行可能ファイルや空のファイルを含む)、およびシンボリック リンクを検索するように依頼できます。これを行うには、
-t
(type) オプションに続いて以下の文字のいずれかを使用します。
- f : ファイル。
- d : ディレクトリ。
- l : シンボリックリンク。
- x : 実行可能ファイル。
- e : 空のファイル。
次の例では、images というディレクトリを検索します。
fdfind -td イメージ
現在のサブディレクトリより 1 つ下のサブディレクトリに一致するものが見つかりました。
大文字と小文字の区別が検索パターンでどのように機能するかを見てみましょう。次のように入力して、最初にファイル名に「geo」を含むファイルを検索し、次にファイル名に「Geo」を含むファイルを検索します。
fdfind -tf geo
fdfind -tf 地理
最初のコマンドでは、小文字の検索パターンを使用したため、
fd
大文字と小文字を区別しない方法で動作しました。これは、「Geo」と「geo」の両方が有効な一致であることを意味します。
2 番目のコマンドには大文字が含まれていたため、
fd
大文字と小文字を区別して動作しました。これは、「Geo」のみが有効な一致であることを意味します。
コマンドの実行
fd
コマンドを使用すると、別のコマンドを起動し、見つかった各ファイルに対して実行できます。
ソース コード ディレクトリ ツリーのどこかに Zip ファイル があることがわかっているとします。 ZIP 拡張子を持つファイルを検索する次のコマンドを使用して検索できます。
fdfinf -e zip
-x
(exec) オプションを使用すると、見つかった各ファイルを別のコマンドに渡して処理させることができます。たとえば、次のように入力すると、
解凍ユーティリティ
を呼び出して ZIP ファイルを解凍できます (「{}」は、見つかったファイルを表すプレースホルダーです)。
fdfind -e zip -x unzip {}
これにより、現在の作業ディレクトリにファイルが解凍されます。 ZIP ファイルを含むディレクトリに解凍したい場合は、次のいずれかのプレースホルダーを使用できます。
- {} : 見つかったファイルの完全なファイルパスと名前。
- {/} : 見つかったファイルのファイル名。
- {//} : 見つかったファイルを含むディレクトリ。
- {/.} : 見つかったファイルの拡張子を除いたファイル名。
ZIP ファイルが含まれるディレクトリで ZIP ファイルを見つけて解凍するには、 unzip
-d
(ディレクトリ) オプションを使用し、親ディレクトリのプレースホルダ (
{//}
) を渡します。
fdfind -e zip -x unzip {} -d {//}
次に、ZIP ファイルが検索され、その親ディレクトリで解凍されます。
頼りになる検索結果は何ですか?
fd
は最も一般的な用途を非常にシンプルにカバーしているため、頼りになる「検索」コマンドとして簡単に使用できます。より高度な機能が必要なときは、いつでもベテランの を
find
ください。
関連: 開発者と愛好家のための最高の Linux ラップトップ





