ウェブサイト検索

Linux で「find」コマンドを使用して複数のファイル名 (拡張子) を検索する方法


多くの場合、異なる拡張子を持つ複数のファイルを検索しなければならない状況に陥ります。これはおそらく、特にターミナル内で何人かの Linux ユーザーに起こったことでしょう。

ファイル システム上のファイルを検索するために使用できる Linux ユーティリティがいくつかありますが、複数のファイル名や拡張子が異なるファイルを見つけるのは難しい場合があり、特定のコマンドが必要になることがあります。

Linux ファイル システム上のファイルを検索するための多くのユーティリティの 1 つは find ユーティリティです。このハウツー ガイドでは、find を使用して次のことを行う例をいくつか説明します。複数のファイル名を一度に見つけるのに役立ちます。

実際のコマンドに入る前に、Linux の find ユーティリティについて簡単に説明します。

find ユーティリティの最も単純かつ一般的な構文は次のとおりです。

find directory options [ expression ]

Linux のfind コマンドの例をいくつか見てみましょう。

1. 現在のディレクトリ内の .sh および .txt ファイル拡張子を持つすべてのファイルを検索すると仮定すると、次のコマンドを実行してこれを実行できます。以下のコマンド:

find . -type f \( -name "*.sh" -o -name "*.txt" \)

上記のコマンドの解釈:

  1. . は現在のディレクトリを意味します
  2. -type オプションはファイルの種類を指定するために使用されます。ここでは、f で表される通常のファイルを検索します。
  3. -name オプションは、検索パターン、この場合はファイル拡張子を指定するために使用されます。
  4. -o は「OR」を意味します

ファイル拡張子を括弧で囲み、コマンドと同様に \ (バックスラッシュ) エスケープ文字も使用することをお勧めします。

2. .sh.txt、および .c 拡張子を持つ 3 つのファイル名を検索するには、以下のコマンドを実行します。

find . -type f \( -name "*.sh" -o -name "*.txt" -o -name "*.c" \)

3. ここでは、.png.jpg.deb、および .png.jpg を含むファイルを検索する別の例を示します。.pdf 拡張子:

find /home/aaronkilik/Documents/ -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.deb" -o -name ".pdf" \)

上記のすべてのコマンドを注意深く観察すると、find コマンドで -o オプションを使用するちょっとしたトリックがわかります。これにより、検索配列にさらにファイル名を追加できるようになります。検索しているファイル名やファイル拡張子もわかります。

結論

このガイドでは、1 つのコマンドを発行するだけで複数のファイル名を検索できるようにする、 シンプルで便利な検索ユーティリティのトリックについて説明しました。他の多くの重要なコマンド ライン操作を理解し、find を使用するには、以下の記事を参照してください。

お見逃しなく: この 35 の例で Linux の「find」コマンドをマスターしましょう