重要なファイルを必死に探した結果、すべてのディレクトリを探して何時間も無駄にしたにもかかわらず、そのファイルがどこにも見つからないことに気づいたことはありませんか?これは、ほとんどの Linux ユーザー、特に整理されていない膨大な数のファイルやディレクトリを持つ新規ユーザーが直面する一般的な問題です。この記事では、Linux の find コマンドを使用してさまざまな方法でファイルやディレクトリを検索する方法を説明します。

目次

Linux の find コマンドとは

find コマンドは、Linux ユーザーがさまざまなオプションを使用してファイルやフォルダーを検索するのに役立つ最も重要なツールの 1 つです。返された検索項目に対してシェル コマンドを実行することもできます (詳細は後ほど!)。 find コマンドを使用してファイルとディレクトリを検索する構文は次のとおりです:

find

上記の構文をどのように説明しますか:

は、検索を絞り込むために使用されるさまざまなオプションです。 は、find コマンドが検索するメモリ内の場所を指定します。 は、検索する検索項目を指定します。

find コマンドと組み合わせる一般的なオプションの一部は次のとおりです。

OptionsDescription-nameThisオプションは、ファイルまたはフォルダーの名前を指定するために使用されます。-typeこれは、検索する項目のタイプを指定します。-execexec フラグは、出力に対してシェル コマンドを実行するために使用されます。-sizeこのフラグは、メモリ占有サイズに基づいて項目をフィルターします。.-permこのフラグは、権限に基づいてファイルとディレクトリをフィルタリングします。-userこのフラグは、特定のユーザーが所有するファイルとディレクトリを検索するために使用されます。

Linux で find コマンドを使用する最良の方法

Linux で find コマンドを使用してファイルとディレクトリを検索する最も一般的な方法は、それぞれの名前を使用することです。正確なファイル名がわからない場合は、汎用性の高い find コマンドを使用すると、名前の一部でもファイルを検索できます。

1.一致する名前を持つ特定のファイルの検索

find コマンドでファイルとディレクトリを検索するには、-iname フラグを使用します。このフラグを使用して検索する利点は、ファイル名の大文字と小文字を無視して指定された名前を検索することです。-iname フラグを指定して find コマンドを使用する構文は次のとおりです。

find -iname

たとえば、現在のディレクトリでファイル「test.txt」を検索する場合には、次のコマンドを使用します:

find 。-iname”test.txt”

ここで、「.」は、ファイルの場所の相対アドレス指定モードの観点から現在のディレクトリを表します。相対モードが理解しにくい場合は、代わりにファイルの場所に絶対アドレス指定モードを使用することもできます。

「-iname」フラグはファイル名の大文字と小文字を無視します。ファイル名と完全に一致するファイル名を検索するには、-iname フラグを-name フラグに置き換えます。

find -name

2. Linux での名前パターンによるファイルの検索

重要なファイルを操作する必要があるが、ファイルの完全な名前を思い出せない場合があります。このような状況でも、find コマンドが救世主となることがあります。ワイルドカードを使用してファイル名のパターンと一致させるだけです。ワイルドカードは、指定されたパターンと使用可能なすべての名前の一致を試みます。現在のディレクトリでファイル「test-101.py」を探す必要があるとします。次のコマンドを使用できます。

これにより、名前「test」で始まるさまざまなファイルがリストされます。ファイル名は以下のようになります:

find 。-type f-iname”test*”

ここでは、検索項目の種類をファイルとして指定するために type f を追加します。また、エラーを防ぐために、必ず二重引用符のペアでワイルドカード式を使用してください。

3 。名前が一致するファイルまたはディレクトリの検索

通常、find コマンドは、名前に一致するすべてのファイルとディレクトリを検索します。ファイルのみを検索するには、基本構文で「-type f」オプションを使用します。

find -type f-name

たとえば、次のコマンドは、次のコマンドを含むすべてのファイルを表示します。名前「テスト」:

find 。-type f-iname”test*”

ディレクトリのみを検索するには、次のように「-type d」フラグを使用します。

find -type d-iname

たとえば、次のコマンドは、すべてのディレクトリを表示します。 「test」という名前のディレクトリ:

find 。-type d-iname”test*”

4.特定の拡張子を持つファイルを検索

ワイルドカードと find コマンドを組み合わせて使用​​すると、拡張子に基づいてファイルを検索することもできます。たとえば、現在のディレクトリで設定ファイルを検索する必要があるが、正確な名前がわからない場合は、

find コマンドを使用できます。-iname”*.conf”

5。サイズに基づいてファイルとディレクトリを検索

適切なサイズ記述子と組み合わせると、find コマンドを-size フラグとともに使用して、メモリ内で占有されているサイズに基づいて Linux でファイルとディレクトリを検索できます。さらに、さまざまなサイズ記述子を追加して、検索するファイル サイズの制限を指定することもできます。

Linux でサイズに基づいてファイルを検索する基本的な構文は次のとおりです。

find -type -size

上記の構文「-size 」の部分を除いて、前のものと同じです。この部分の説明は次のとおりです。

部分には、「+」または「-」を指定することも、空白のままにすることもできます。ここで、「+」は指定されたサイズを超えるファイル/ディレクトリを検索することを意味し、「-」は指定されたサイズ未満のファイル/ディレクトリを検索することを指定します。空白のままにすると、find コマンドはサイズに正確に一致するファイルを検索します。 はファイル/ディレクトリのサイズを指定します。 は、検索するファイル サイズの範囲を指します。

使用できるサイズ記述子のさまざまなタイプは次のとおりです。

Size DescriptorDescriptioncサイズをバイト単位で検索する検索コマンドを指定しますkサイズを検索する検索コマンドを指定しますMサイズをメガバイト単位で検索する検索コマンドを指定しますG検索する検索コマンドを指定しますギガバイト単位のサイズの場合

上記の構文は一部のユーザーにとって非常に複雑に見えるかもしれませんが、いくつかの例を使用すると理解しやすくなります。

ドキュメント ディレクトリ内の 4 KB に相当するディレクトリを表示する必要がある場合は、次のコマンドを使用します: find ~/Documents-type d-size 4k または、スペースが不足していて、Documents ディレクトリ内の 100 MB を超えるファイルを表示する必要がある場合は、次のコマンドを使用します。 ~/Documents-type f-size +100M Documents ディレクトリ内の 10 MB 未満のファイルを表示する必要がある場合は、次のコマンドを使用します: find ~/Documents-type f-size-10M Documents ディレクトリ内の空のファイルを表示する必要がある場合は、次のコマンドを使用します: find ~/Documents-type f-サイズ 0

6.特定の権限に一致するファイルとディレクトリの検索

Linux における権限は、ファイルとディレクトリの両方を意図しないアクセスから保護するために最も重要です。詳細については、Linux 権限に関する包括的なガイドをご覧ください。

権限セットに基づいてファイルとディレクトリを検索するには、次の構文を使用します:

find -type -perm

上記の構文では、次のことができます。 には、アドレッシングの絶対モードまたは相対モードのいずれかを使用します。

root の読み取り専用権限を持つファイルを検索する必要があるとします。

find ~/Documents/test/-type f-perm 400

または、読み取りと読み取りの両方を持つファイルを検索したい場合すべてのユーザーに書き込み権限を付与するには、次のコマンドを使用します:

find ~/Documents/test/-type f-perm a=r+w

7.ユーザーが所有するファイルとディレクトリを検索する

前に説明したように、Linux の find コマンドを使用すると、ファイルに設定されたアクセス許可に基づいてファイルを検索できます。次に、特定のユーザーが所有するファイルを表示する方法を説明します。基本的な構文は、そのユーザーが所有するファイルを検索する find コマンドを指定する新しい-user フラグを除いて、ほとんど同じままです。

find -type -user

Forたとえば、現在のディレクトリ内で「test」ユーザーが所有するファイルを表示したい場合は、次のコマンドを使用します:

find 。-type f-user テスト

8.-exec フラグを指定した find コマンドの使用

-exec フラグを使用すると、find コマンドで実際のシェル コマンドを実行できるため、その機能を複数回高めることができます。-exec フラグは、返されたすべての検索結果に対してシェル コマンドを実行します。-exec フラグを指定して find コマンドを使用する基本構文は次のとおりです。

find -exec {} ;

上記の構文では、{} は、find コマンドで見つかった検索結果をシェル コマンド内に挿入するために使用されます。例を挙げるとさらに分かりやすくなります。

現在のディレクトリ内の test.txt という名前のファイルを/tmp/docs/にコピーするとします。

find というコマンドを使用します。-iname renaming.sh-exec cp {}./testing \;

上記の例では、「renaming.sh」ファイルが見つかると、「{}」の代わりに直接挿入され、通常のコピー手順が実行されます。最後のセミコロン (;) はコマンドの終了を示します。

ここで、複数のファイルが-exec フラグによってどのように処理されるかを見てみましょう。現在のディレクトリにあるすべての.pdf ファイルをホーム ディレクトリの「ftesting」という名前の新しいディレクトリに移動したい場合は、次のコマンドを使用できます:

find.-name”*.pdf”-exec mv {}./テスト + \;

名前を変更したい場合mv コマンドを使用して、ファイル名を変更する 4 つの異なる方法について説明した、Linux でファイル名を変更する方法に関する記事を確認してください。

9. Linux でのファイルとディレクトリの検索と削除

Linux では、特定のファイル/ディレクトリを削除する必要がある場合があります。複雑なシェル スクリプトを作成する必要があると思われるかもしれません。ただし、-exec コマンドを使用すると、指定したルールに基づいて find コマンドでフィルターされたファイルまたはディレクトリを簡単に削除できます。 find コマンドを使用してファイルを削除する基本的な構文は次のとおりです。

find -type -exec rm-vf {} ;

一部のユーザーは、上記のコマンドを理解するのが難しいと感じるかもしれません。作業を簡単にするために、-exec 部分全体の代わりに-delete フラグを使用して項目を削除できます。 Linux で find コマンドで-delete フラグを使用してファイルを削除する構文は次のとおりです。

find -type -delete

正確な名前のファイルとディレクトリを削除します

ファイル/ディレクトリの削除は、find コマンドを使用してファイル/ディレクトリを検索するのと同じように機能します。 find を使用してファイルを削除する構文は次のとおりです。

find -type -name -delete

次の場所にある「test.txt」ファイルを削除するとします。現在のディレクトリでは、このコマンドを次のように使用できます:

find 。-type f-name test.txt-delete

名前が部分的に一致するファイルを削除する

ファイルを削除し、名前の一部しか覚えていない場合は、ワイルドカードを使用して、指定された名前と一致するあらゆる種類の名前を検索できます。ファイル名。 Linux の find コマンドを使用して名前の一部を持つファイルとディレクトリを削除する構文は次のとおりです。

find -type -name -delete

たとえば、削除するには「test」という名前で始まるすべてのファイルを検索するには、次のコマンドを使用します:

find 。-type f-name”test*”-delete

同じ拡張子を持つファイルを削除する

ディレクトリ内の同じ拡張子を持つすべてのファイルを削除する必要がある場合、最後に-delete フラグを追加するだけです。同じ拡張子を持つすべてのファイルを削除する構文は次のとおりです:

find -type f-name”*.“-delete

たとえば、次のすべての.pdf ファイルを削除する場合、現在のディレクトリを指定するには、次のコマンドを使用できます:

find 。-type f-name”*.pdf”-delete

Linux でファイルとディレクトリを削除するその他の方法について知りたい場合は、Linux でファイルを削除する方法と Linux でディレクトリを削除する方法に関する記事を参照してください。 。最初は必ず削除フラグを付けずに find コマンドを実行することをお勧めします。結果に満足したら、-delete フラグを適用して最終的に項目を削除できます。

find コマンドを使用して空のファイルとディレクトリを削除する

空のファイルとディレクトリを削除するのは非常に簡単です。 Linux で空のフォルダーとファイルを検索するには、コマンドの最後に-delete フラグを追加するだけです。空のファイルとフォルダーを削除する構文は次のとおりです:

find -type -size 0-delete コメントを残す

中途半端で有名な Arkane フォーミュラの寄せ集めである Redfall には、いくつかの疑わしいデザインの選択があります。私は Arkane Studios が作ったゲームが大好きで、Dishonored はそのユニークな新興ゲームプレイのために時々再訪するタイトルになっています。そして […]

BenQ PD2706UA モニターが登場しました。これには、生産性向上ユーザーが喜ぶであろうすべての付加機能が付属しています。 4K解像度、工場で調整された色、27インチパネル、簡単に調整できる人間工学に基づいたスタンドなど。多くの […]

Minecraft Legends は、昨年最初に公開されたときに私の興味をそそられたゲームです。しかし、正式リリースが近づくまで、私はこのゲームを積極的にフォローしなかったことを認めます。結局のところ、私の愛 […]

Categories: IT Info