多くのLinuxプログラマーはfind
を使用します 彼らのキャリアの毎日を指揮します。しかし、find
限られたファイルシステムエントリのセットを提供し、大量のfind
を実行する必要がある場合 操作、それは非常に速くさえありません。代わりに、Rust fd
を使用することを好みます コマンドは、ほとんどのユースケースで機能する適切なデフォルトを提供するためです。
READMEにあるように、「fd
ファイルシステム内のエントリを検索するプログラムです。これは、find
に代わる、シンプルで高速、そしてユーザーフレンドリーな代替手段です。 。"並列化されたディレクトリトラバーサルを備えているため、一度に複数のディレクトリを検索できます。正規表現(regex)とglobベースのパターンをサポートしています。
fdをインストール
Linuxでは、fd
をインストールできます ソフトウェアリポジトリから(利用可能なパッケージのリストは、Repologyのfdページにあります。)たとえば、Fedoraの場合:
$ sudo dnf install fd-find
macOSでは、MacPortsまたはHomebrewを使用します。
または、RustのCargoパッケージマネージャーを使用することもできます:
$ cargo install fd-find
fdを使用
簡単な検索を行うには、fd
を実行します 次のような引数の後:
$ fd sh
registry/src/github.com-1ecc6299db9ec823/cc-1.0.67/src/bin/gcc-shim.rs
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.bash
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.fish
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.zsh
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/xtests/run.sh
registry/src/github.com-1ecc6299db9ec823/git2-0.13.18/src/stash.rs
registry/src/github.com-1ecc6299db9ec823/libc-0.2.94/src/unix/solarish
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/cmake/SelectHashes.cmake
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/stash.h
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/sys/hashsig.h
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/backport.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/leaks.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/valgrind.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/src/config_snapshot.c
[...]
特定のディレクトリを検索する場合は、fd
の2番目の引数としてディレクトリパスを指定します 、例:
$ fd passwd /etc>
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
/etc/security/opasswd
特定のファイル拡張子を検索するには、-e
を使用します オプションとして。例:
$ fd . '/home/ssur/exa' -e md
/home/ssur/exa/README.md
/home/ssur/exa/devtools/README.md
/home/ssur/exa/man/exa.1.md
/home/ssur/exa/man/exa_colors.5.md
/home/ssur/exa/xtests/README.md
$
-x
を指定してコマンドを実行することもできます または-X
。
-
-x/--exec
オプションは、検索結果ごとに外部コマンドを(並行して)実行します。 -
-X/--exec-batch
オプションは、すべての検索結果を引数として外部コマンドを1回起動します。
たとえば、すべてのZIPアーカイブを再帰的に検索して解凍するには、次のようにします。
$ fd -e zip -x unzip
または、最後の n内で変更された特定のディレクトリの下のすべてのファイルを一覧表示します 日数は、--changed-within
を使用します オプション:
$ fd . '/home/ssur/Work/' --changed-within 10d
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcDriverAdd.java
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcExample.java
[...]
また、特定の日数より前に変更されたすべてのファイルを検索するには、--changed-before
を使用します n オプション:
$ fd . '/home/ssur/Work/' --changed-before 365d
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
ここでは、.
fd
に指示するワイルドカードエントリとして機能します すべてのファイルを返します。
fd
の機能の詳細については 、GitHubのドキュメントを参照してください。
fd
について私が特に気に入っていることの1つ 検索パターンではデフォルトで大文字と小文字が区別されないため、探しているものについて不正確な知識がある場合でも、検索が容易になります。さらに良いことに、自動的に パターンに大文字が含まれている場合は、大文字と小文字が区別されます。
もう1つの利点は、色分けを使用してさまざまなファイルタイプを強調表示することです。
この素晴らしいRustツールをすでに使用している場合は、コメントでご意見をお聞かせください。