Bash でファイルを再帰的に検索する

Naila Saad Siddiqui 2024年2月15日
Bash でファイルを再帰的に検索する

この記事は、Bash の find コマンドに関するものです。 この記事では、Bash で find コマンドを使用して特定の種類のファイルを見つける方法について説明します。

find コマンドを使用して Bash でファイルを再帰的に検索する

ファイル階層をナビゲートするためのコマンドライン ツールは、Linux の find コマンドです。 フォルダやファイルを検索および監視するために使用される場合があります。

ファイルとフォルダーの名前、作成日、変更日、所有者、およびアクセス許可で検索できます。

次の構文があります。

$ find [directory where to start searching] [-options] [name of file]

オプションには次の属性があります。

シニア番号 オプション 目的
1 -links N いくつかの番号を持つファイルを検索します。 指定されたリンクの。
2 -name 指定された名前またはパターンでファイルを検索します。
3 -新しい [ファイル名] ファイル名の後に作成されたファイルを検索します。
4 -perm 特定の権限を持つすべてのファイルを検索します。
5 -print ファイルの完全なパス名を検索して表示するために使用されます。
6 -empty 空のファイルまたはディレクトリを検索します。
7 -size +N/-N 特定のサイズのファイルを検索するために使用されます。 N+N として使用されている場合、N より大きいサイズのファイルを意味します。 -N として使用すると、N より小さいサイズのファイルを意味します。
8 -user 指定された所有者名を持つファイルを検索します。

find コマンドの特定の例を見てみましょう。

ファイル名で検索

$ find ./mydir -name myfile.txt

このコマンドは、ディレクトリ mydir でファイル名 myfile.txt を検索します。

出力:

ファイル名で検索 - 出力

パターンで検索

$ find ./mydir -name "*.jpeg"

このコマンドは、.jpeg 拡張子を持つすべてのファイルについてディレクトリ mydir を検索します。

出力:

パターンで検索 - 出力

アクセス許可のあるファイルを検索する

$ find ./mydir -perm 777

このコマンドは、ディレクトリ mydir を検索して、777 パーミッションを持つすべてのファイルを探します。

出力:

権限のあるファイルを検索 - 出力

複数の名前またはパターンを持つファイルを検索する

.txt.jpg 拡張子を持つファイルを検索する必要がある場合など、複数のパターンでファイルを検索する必要がある場合があります。

$ find . -name '*.txt' -o -name '*.jpg'

このような状況では、-name オプションを複数回使用できます。

出力:

複数のパターンを含むファイルを検索 - 出力

空のファイルを検索

$ find mydir -empty

このコマンドは、mydir 内の空のファイルまたはディレクトリを検索します。

出力:

空のファイルを検索 - 出力

関連記事 - Bash File