findコマンドをより効率的に使用するにはどうすればよいですか?


15

findコマンドを効率的に使用する最良の方法は何ですか?

私は通常find [filename] [dir]、ファイル名の長いリストを提供しますが、検索に関連するファイル名はありません。

特定のディレクトリで1つのファイルを見つけるだけです。そのためのコマンドは何ですか?

回答:


24

通常、検索を開始する場所と検索する場所を見つけます。そのため、検索するパスの構文と実際に見つけようとしているものは異なります。

あなたが言及するユースケースのために、あなたがpasswdファイルを見つけたいと仮定しましょう/etc

find /etc/ -name passwd

あなたは、etcにあるファイルを探し始め、」言っている名前ですがpasswd

条件(または検索用語の「オプション」)を指定しない場合、findは、指定したパスで開始し、その下のすべてのファイルとディレクトリを再帰的に検索します。したがって、オプションはこれらのファイルを「フィルタリング」して、探しているものを絞り込みます。

ファイルシステム内の任意の場所ですべてのJPGファイルを検索します。

find / -name "*jpg" 

オプションで引用符を使用することをお勧めします。そうしないと、シェルを展開すると頭痛の種になる可能性があります。

ケースに関係なく、ドキュメントまたはダウンロードでPDFファイルを検索します。

find Documents/ Downloads/ -iname "*pdf"

実行man findしてTESTSまでスクロールすると、検索で絞り込むために使用できるすべての「基準」が見つかります。特定のユーザーまたはグループが所有し、特定のファイル許可を持ち、特定のタイプの特定のファイル名(たとえば-type d、ディレクトリのみを検索し、ディレクトリ-type fを除くプレーンファイルのみを検索)、新しいファイルまたは古いファイルを検索できます。特定の日数(または分)、空のファイル、実行可能なファイルなど。

findのmanページにはACTIONSというセクションもあります。これらは基準の後に行くことができ、すべての基準に一致するファイルによってトリガーされます。そのfindため、見つかったファイルの削除、ファイルに対する任意のコマンドの実行などを行うことができます。

ただし、基本的な構文はもちろん残ります。

find [starting path(s)] [conditions or criteria]

感謝します 私は本当に混乱しました、そして、これは物事をまっすぐにするのを助けます
-Sam007

1
+1これは、見つけるための優れた紹介であり、OPに詳細情報を見つける方法も教えます。
lgarzo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.