Linux FIND コマンドと例


Linux の新規インストールにはいくつのファイルがあるかご存知ですか? PopOSを使用している場合! Linuxディストリビューション の例では、31,000 を超えるファイルがあります。それは、ドキュメントの作成、音楽の保存、PDF のダウンロード、写真の整理を始める前です。

このため、必要なときに Linux で適切なファイルやフォルダーを見つけることが困難になります。この記事では、Linux FIND コマンドの使用方法を学び、可能なすべての例を示します。

Linux FIND コマンド構文

構文とは、単語またはコマンドがどのように組み立てられるかを指します。通常の文が単語をシャッフルするだけで意味不明になる場合があるのと同じように、コマンドも適切な構文で使用されないと失敗する可能性があります。

[パス] [条件] [アクション] を検索

これが何を意味するか:

find – Linux で Find ユーティリティを開始します

パス – どこを見るべきか

条件 – 検索に適用する引数

アクション – 結果に対して何をしたいか

3 つすべてを使用した簡単な例は次のようになります。

検索します。 -name file-sample.rtf -print

ご想像のとおり、これにより、ファイル名 file-sample.rtf が見つかります。

ピリオド (. ) パスは、現在のディレクトリとその中のディレクトリを検索するように find に指示します。

-name 条件 は、find にその特定の名前のファイルを取得するよう指示します。

-print アクションは、結果を画面に表示するように FIND に指示します。

ピリオドと -print は、find コマンドのデフォルトです。したがって、それらを使用しなくても同じ動作が行われます。したがって、find -name file-sample.rtf でも同じ結果が得られます。

Linux が別のディレクトリで検索

現在いるディレクトリとは別のディレクトリを検索できます。FIND の後にディレクトリへのパスを挿入するだけです。ルートにいて、ファイルが home/user ディレクトリのどこかにあることがわかっている場合は、次のようにします。

ホーム/ユーザー名 file-sample.rtf を検索

これも再帰的検索であるため、ユーザー の下のすべてのディレクトリを検索します。.

Linux FIND 複数のディレクトリを検索

複数のディレクトリを一度に検索する場合は、コマンド内でスペースで区切ってディレクトリをリストします。

find /lib /var /bin -name file-sample.rtf

再帰なしまたは再帰を制限した Linux FIND

上記の FIND コマンドをルート レベルで使用した場合、システム上のすべてのディレクトリが検索されます。したがって、現在のディレクトリだけにこだわりたい場合は、 -max Depth オプションを使用してください。 -max Depth の後の数値は、Find が停止する前にどのくらいの深さまで進むかを指示します。

-max Depth 1 の使用は、このディレクトリのみを意味します。

find -name file-sample.rtf -max Depth 1

-max Depth 2 以上の数値を使用すると、その数のレベルをさらに深くすることになります。

find -max Depth 5 -name file-sample.rtf

Linux FIND ワイルドカードの例

FIND コマンドは、アスタリスク (* ) をワイルドカードとして使用します。名前の不明な部分に使用してください。名前に複数回使用できます。ファイル名の一部としてファイル タイプを指定しない場合、結果には一致するディレクトリも含まれます。

ホーム/ユーザー名 ファイル*サンプル* を検索

タイプによる Linux FIND の例

ファイルまたはディレクトリのみを検索するには、-type オプションと適切な記述子を使用します。いくつかありますが、ファイルとディレクトリのものが最も一般的です。

f – ファイル

d – ディレクトリ

b – デバイスをブロックする

c – キャラクターデバイス

l – シンボリック リンク

s – ソケット

find home/user -name file*sample* -type d

大文字と小文字を区別しない Linux FIND の例

Windows とは異なり、Linux では文字が大文字であるか小文字であるかが考慮されます。したがって、File-Sample.rtf と file-sample.rtf の両方を検索したい場合は、-iname オプションを使用します。

find home/user -iname File-Sample.rtf

Linux での複数のファイルの検索の例

ファイルの .rtf バージョンと .html バージョンを見つけたいとします。これは、-o (または) 演算子を使用して 1 つのコマンドで実行できます。一部のディストリビューションでは、( -name file-sample.rtf -o -name file-sample.html ) のように名前を括弧で囲む必要がある場合があります。.

find home/user -name file-sample.rtf -o -name file-sample.html

名前が一致しない Linux FIND ファイル

おそらく、ファイルの .html バージョンがあることは知っていますが、他のファイルがあるかどうかは知りません。 -not オプションを使用して、.html バージョンを検索から除外できます。

find home/user -name file-sample* -not -name *.html

エラー結果のない Linux FIND 結果

再帰なしの検索の例では、検索できなかったすべてのディレクトリと正しい結果がリストされていることに注目してください。うざい。 「許可が拒否されました」ディレクトリをすべて表示しないようにしましょう。これを別の Linuxターミナルコマンド と組み合わせます (grep)。 特定の単語が含まれるファイルを検索する まで grep を使用して検索を使用することもできます。

find -max Depth 5 -name file-sample.rtf 2>&1 | grep -v 「許可が拒否されました」

2>&1 を詳しく見てみましょう。

2 – 標準エラー出力の略である stderrを表します。

1 – 標準出力の略である stdoutを表します

> – 左側にある出力を右側にある出力にリダイレクトすることを意味します。

& – まとめるという意味です。

つまり、2>&1 は、標準エラーを取得してリダイレクトし、標準出力と一緒に 1 つの出力にまとめるという意味です。

次に、| を見てみましょう。 grep -v 「許可が拒否されました」

| (パイプと呼ばれます) – Linux に、左側にあるものの結果を右側にあるものにフィードするように指示します。これは grep コマンドに供給されます。

grep – テキスト検索ユーティリティです。

-v – -v の左側のテキストに一致しないものを検索するように grep に指示します。この場合、「許可が拒否されました」というテキストまたは文字列を含まないもののみを検索するように grep に指示しています。そのため、grep では、探している結果と、「許可が拒否されました」に一致しないエラーのみが表示されます。

権限による Linux FIND の例

.

これをうまく利用するには、Linuxの権限を学ぶ 必要があります。

サンプル ファイルには、パーミッション 775 を持つ 1 つを除いて、すべてパーミッション 664 があります。これを見つけるには、-perm オプションを使用します。

ドキュメントの検索/ -name file-sample* -type f -perm 775

サイズによる Linux FIND の例

サイズによるファイルの検索は、ハード ドライブをいっぱいにする巨大なファイルを取得する場合に便利です。 -size オプション、必要なサイズ、および次のいずれかの接尾辞を使用します。接尾辞が使用されない場合、-size はデフォルトで b になります。特定のサイズ以上のファイルを検索するには、サイズの前にプラス記号 (+) を付けます。

M – メガバイト

G – ギガバイト

k – キロバイト

b – ブロック (512 バイト – デフォルト)

c – バイト

w – 単語 (2 バイトを合わせたもの)

find -size +500k

所有者による Linux 検索

所有者別にファイルを検索するには 2 つの方法があります。 1 つは所有者のユーザー名によるもの、もう 1 つはユーザーのグループによるものです。ユーザー名で検索するには、-user オプションに続いてユーザー名を使用します。ユーザー グループ別に検索するには、-group の後にグループ名を入力します。

find -user グループ名 または find -user ユーザー名

最終変更例別の Linux FIND ファイル

過去 X 日間に変更されたファイル、または編集されたファイルを検索するには、-mtime に続けて数字を使用します。数値の前にマイナス記号 (- ) を付けると、過去の日数以内に変更されたものが検索されます。プラス記号 (+ ) は、今からその日数以内であることを意味します。

find -name “file-sample*” -mtime +5 (5 日以上前)

find -name “file-sample*” -mtime -5 (5 日以内)

最終更新日を分単位で検索するには、オプション -mmin の後に分数を指定します。上記と同様に + と – を使用します。

find -name “file-sample*” -mmin -5

find -name "file-sample*" -mmin +5

最終アクセス時間による Linux FIND ファイルの例

.

ファイルが最後に開かれた時間に基づいてファイルを検索するために使用されるオプションは、日の場合は -atime 、分の場合は -amin です。その後に遡る日数または分数を指定し、大なり小なりとして + 記号と – 記号を使用します。

find -name "file-sample*" -atime -5

find -name "file-sample* -amin -5

FIND と他の Linux コマンドを組み合わせる

上記は grep コマンドで find を使用する例の 1 つですが、他の多くのコマンドでも使用できます。 find やその他のコマンドを使用すると、非常に強力であり、時間を大幅に節約できることがわかります。特定の種類のファイルを大量に削除する必要があることを想像してください。ファイル エクスプローラーで検索する代わりに、適切なコマンドを作成するだけで、数秒で完了します。 find コマンドを今どのように使用しますか?

.

関連記事:


18.01.2022