何千ものファイルを含むシステムでデータを検索することは、管理者にとって、特にコマンド ラインに慣れていないシステム ユーザーにとって非常に困難になります。グラフィカル ユーザー インターフェイスを介した検索は可能ですが、速度と機能の点で一定の制限があります。コマンド ラインは、さまざまな検索基準を使用してファイルをすばやく検索するための柔軟性を提供します。 Linux には、システム上のファイルとフォルダーを検索するために使用できるコマンドがいくつかあります。
この記事では、さまざまなコマンドを使用して Debian システム内のファイルとフォルダーを検索する方法を学習します。次のコマンドを使用してファイルを検索します:
- 検索コマンド
- 検索コマンド
- grep コマンド
この記事に記載されているコマンドと手順を実行するために Debian 10 と Debian 11 を使用したことに注意してください。
検索コマンドの使用
検索は、システム内のファイルを検索するための最も効果的なコマンドです。ファイルの作成日、変更日、権限など、さまざまな条件でファイルを検索できるので、ファイル名がわからなくても便利です。
次の構文は、検索コマンドを使用してファイルを検索するために使用できます:
$ find /path/to/file/ -iname filename
たとえば、~/Downloads ディレクトリで「license.pdf」という名前のファイルを検索するには、次のコマンドを使用します。
$ find ~/Downloads/ -iname license.pdf
ディレクトリを指定しない場合、現在のディレクトリ内のファイルが検索されることに注意してください。
ワイルドカードを使用してファイルを検索
ワイルドカード文字を使用して、クエリに一致するファイルを見つけることもできます。
$ find /path/to/file/ -iname filename\*
たとえば、「test」という単語で始まるディレクトリ内のすべてのファイルを検索するには、次のコマンドを使用できます:
$ find ~/Downloads -iname test\*
空のファイルを検索
ディレクトリ内の空のファイルを検索するには、次のコマンド構文を使用します:
$ find /path/to/file/ -empty
たとえば、~/Downloads ディレクトリ内のすべての空のファイルを見つけるには、次のコマンドを使用します:
$ find ~/Downloads/ -empty
日時に基づいてファイルを検索
アクセスまたは変更された日時に基づいてファイルを検索することもできます。次の条件に基づいてファイルを検索できます:
- mtime (変更時間 (日))
- atime (アクセス時間の日数)
- ctime (時間の変更)
3 日以内に変更されたファイルを見つけるには、ターミナルで次のコマンドを使用します:
$ find /path/to/file -mtime -3
同様に、3 日以上前に変更されたファイルを見つけるには、+3 を使用します。
3 日以内にアクセスされたファイルを見つけるには、ターミナルで次のコマンドを使用します:
$ find /path/to/file -atime -3
3 日以内に変更されたファイルを見つけるには、ターミナルで次のコマンドを使用します:
$ find /path/to/file -ctime -3
ファイル サイズに基づく検索
サイズに基づいてファイルを検索するには、-size スイッチの後にファイル サイズを指定します。サイズが 5kb のファイルを見つけるには、次を使用します。
サイズが 5M 未満のファイルを検索するには、次を使用します:
$ find /path/to/file -size -5M
サイズが 5M を超えるファイルを検索するには、次を使用します:
$ find /path/to/file -size +5M
ファイルのアクセス許可に基づく検索
特定の権限を持つファイルを検索するには、次の構文を使用します:
$ find /path/to/file/ -type -perm mode
d を入力します または f type パラメータの後に、ファイルのタイプを指定します。 (d ディレクトリと f の場合 ファイル用)。 モードを置き換える 数値 (例:777、655 など) または記号によるアクセス許可 (例:u=x、a=r+x)。
たとえば、権限が 655 のファイルを検索するには、ターミナルで次のコマンドを使用します。
$ find /path/to/file -type f -perm 777
locate コマンドの使用
別のコマンド Locate を使用して、Linux でファイルを検索することもできます。 [検索] コマンドほど多くの検索条件は提供されませんが、[検索] コマンドよりもはるかに高速で効率的です。システムに追加された新しいファイルの記録を保持することにより、独自のデータベースを維持します。そのため、ファイルを検索するときはいつでも、ハードディスク内で検索されません。代わりに、独自のデータベースでファイルを検索します。
Locate のインストール
Locate は Linux ディストリビューションにプリインストールされていません。手動でインストールする必要があります。 Locate ユーティリティをインストールするには、コマンド ライン ターミナルで次のコマンドを実行します。
$ sudo apt-get install locate
インストールしたら、それを使用してシステム内のファイルを検索できます。
次の構文を使用してファイルを検索できます:
$ locate –i <path/to/file or filename>
-i は、ファイル名の大文字と小文字を無視するために使用されます。
ファイルを検索しています
たとえば、ファイル名「license」を検索するには、ターミナルで次のコマンドを入力します:
$ locate –i license.pdf
複数のファイルを検索
一度に複数のファイル名を検索するためにも使用できます。たとえば、ターミナルで次のコマンドを使用して、2 つの別々のファイル「license.pdf」を検索します。 および「testfile1」 同時に:
ワイルドカードを使用した検索
ワイルドカード文字を使用して、クエリに一致するファイルを検索することもできます。たとえば、「.ttf」で終わるすべてのファイルを検索するには、ターミナルで次のコマンドを使用します:
$ locate –i ~/Downloads/*.ttf
ロケート データベースの更新
Locate コマンドは、独自のデータベースに依存して機能します。したがって、適切に機能するためには、データベースを定期的に更新する必要があります。これを行うには、ターミナルで次のコマンドを実行します:
$ sudo updatedb
Grep の使用 コマンド
grep コマンドは基本的に、特定のパターンに一致するファイルからテキストを出力するために使用されます。ただし、ディレクトリ内のファイルを検索するためにも使用できます。たとえば、ファイルを探していますが、ファイル名がわかりません。その場合、含まれているキーワードを使用してその場所を検索できます。
$ grep OPTIONS PATTERN /path/to/file
オプション いくつかの検索制御オプションと PATTERN を保持します 検索したいキーワードを保持します。
次の例では、grep を使用して、キーワード「account」を含むファイルを見つけます。
$ grep –r -i “account” ~/Downloads
どこ
-i は、言及されたキーワードの大文字小文字を無視するために使用されます
-r は、指定されたディレクトリを再帰的に検索するために使用されます
この記事では、Debian システムでファイルを見つけるコマンドラインの方法について説明しました。ファイル検索に GUI を使用することもできますが、速度と機能の点でコマンド ラインの方が効率的です。