このガイドでは、「find」コマンドと「locate」コマンドを使用して、Linuxファイルシステム上のファイルとディレクトリを検索する方法を説明します。
目次
- findコマンドを使用してLinuxでファイルとディレクトリを検索する
- 名前でファイルを検索
- 部分的な名前でファイルを検索
- サイズでファイルを検索
- タイムスタンプを使用してファイルを検索する
- 所有者によるファイルの検索
- 権限でファイルを検索
- 名前でディレクトリを検索
- locateコマンドを使用してLinuxでファイルとディレクトリを検索する
- 名前でファイルを検索
- 部分的な名前でファイルを検索
- 検索結果を制限する
- 一致するエントリの数を表示する
- データベースの検索に関する情報を取得する
- 結論
特定のファイルにアクセスしたいのに、Linuxシステムでそのファイルが見つからない場合があります。 Linuxでファイルやディレクトリを検索して見つける方法はたくさんありますが、最も簡単で迅速な方法はおそらくターミナルを使用することです。
find
コマンドは、Linuxで最も重要で頻繁に使用されるコマンドラインユーティリティの1つです。
findコマンドを使用してLinuxでファイルとディレクトリを検索する
Linuxのfind
コマンドは、システム管理者が幅広い検索条件に基づいてファイルとディレクトリを見つけて管理できるようにする強力なツールです。ファイル、フォルダ、名前、作成日、変更日、所有者、権限による検索をサポートしています。
検索
コマンドは、ファイルとディレクトリを検索し、それらに対して後続の操作を実行するために使用されます。 各パスのファイルとディレクトリを再帰的に検索します。したがって、 find
コマンドは、指定されたパス内のディレクトリを検出し、その中の他のファイルとディレクトリを検索します。
find
の一般的な構文 コマンドは次のとおりです:
find [path] [options] [expression]
この構文を分解してみましょう:
パス
:findがファイルを検索する開始ディレクトリを定義します。オプション
:find
を制御します プロセスの動作と最適化方法。式
:この属性は、演算子で区切られたオプション、検索パターン、アクションで構成されています。
findコマンドの最も一般的な使用法は、名前でファイルを検索することです。 -type f
オプションは、ファイルを探していることをシステムに通知します。ファイル名を使用してファイルを検索するには、 -name
を使用します デフォルトのコマンドでフラグを立てます。
たとえば、 report.pdf
という名前のファイルを検索するには / home
にあります ディレクトリの場合、次のコマンドを使用します:
find /home -type f -name report.pdf
ご存知のように、Linuxではファイル名の大文字と小文字が区別されます 、したがって、 Report.pdf
という名前のファイルを探している場合 、上記のコマンドは結果を返しません。その場合、 -iname
を使用する必要があります -name
の代わりにオプション 。
-iname
オプションは大文字と小文字を区別しない検索を実行します 、これを行うことができます:
find /home -type f -iname report.pdf
このコマンドは、次のいずれかの名前のファイルを検索します: report.pdf
、 Report.pdf
、 REPORT.pdf
、など。
ファイル名メタ文字を使用できます アスタリスクなど( *
)、ただし、エスケープ文字( \
)を入力する必要があります )それぞれの前に置くか、引用符で囲みます。
たとえば、 .pdf
で終わるすべてのファイルを検索するには 、実行できます:
find /home -type f -name '*.pdf'
これは次と同じです:
find /home -type f -name \*.pdf
同様に、名前が report
で始まるLinuxシステム上のすべてのファイルを検索するには 、実行できます:
find /home -type f -name 'report*'
find
を使用する コマンドを使用すると、複雑に見える可能性のあるものを簡単に実現することもできます。指定されたサイズよりも大きいまたは小さいファイルを見つける 。
サイズコード>
find
のオプション 特定のサイズのファイルを検索できます。 +
および-
接頭辞は、通常どおり「より大きい」と「より小さい」を意味します。
次の例では、1ギガバイトを超えるすべてのファイルを検索します。 +
の使用に注意してください サイン:
find /home -type f -size +1G
上記の例では、接尾辞 G
ギガバイトを示します。その他の一般的な使用可能なサフィックスは次のとおりです。
-
c
:バイト。 -
k
:キロバイト。 -
M
:メガバイト。
上記のfind
コマンドを使用して、指定したサイズより大きいすべてのファイルを検索しました。次に、 find
コマンドの例では、サイズが200キロバイト未満のすべてのファイルを検索します。 -
の使用に注意してください サイン:
find /home -type f -size -200k
今、あなたはおそらくLinuxで特定のサイズのファイルを見つける方法を疑問に思うでしょう。 。たとえば、次のコマンドを使用して、サイズが100メガバイトから120メガバイトのファイルを見つけることができます。
find /home -type f -size +100M -size -120M
Linuxは、ファイルシステム内のすべてのファイルに特定のタイムスタンプを割り当てます。 find
コマンドは、最後の変更に基づいてファイルを検索することもできます。 、アクセス、または時間の変更。
-mtime
オプションは、ファイルの経過日数を指定するために使用されます。式は2つの方法で使用できます:
-
-mtime + N
N
よりも多く変更されたファイルを検索します 数日前(以上) -
-mtime -N
N
未満で変更されたファイルを検索します 数日前(未満)
たとえば、 +3
と入力した場合 、 / home
からすべてのファイルが検索されます 3日以上前のディレクトリ。
find /home -type f -mtime +3
同様に、過去24時間に変更されたすべてのファイルを検索する場合:
find /home -type f -mtime -1
同様に、 -mmin N
を使用できます 日ではなく分に依存する式。
たとえば、このコマンドは / home
からすべてのファイルを検索します 直前に変更されたディレクトリ。
find /home -type f -mmin -1
さらに、表現を作成することもできます。 60分未満および30分以上前に変更されたLinuxのファイルを見つける方法は次のとおりです。
find /home -type f -mmin -60 -mmin +30
特定のユーザーまたはグループが所有するファイルを検索するには、 -user
を使用します および-group
オプション。
たとえば、ユーザー john
が所有するファイルを検索するには / home
で サーバーのフォルダ:
find /home -type f -user john
www-data
というグループに属するすべてのファイルを検索します / home
で ディレクトリ:
find /home -type f -group www-data
-perm
このオプションを使用すると、ユーザーは特定の権限セットを持つファイルを検索できます。 。
次のコマンドは、現在のディレクトリで正確に644の権限を持つファイルを検索します。
find /home -type f -perm 644
-
の使用 オプションは、「少なくともこの権限レベルが設定されており、それより高い権限が設定されている」ことを意味します。
find /home -type f -perm -644
この例では、 / home
内のすべてのリソースを表示します 少なくとも644
のディレクトリ 権限。これは、 777
などの権限を持つファイルを意味します 、 745
、 666
、 655
、 654
、などは一致しますが、アクセス許可が 642
のファイルは一致します 、 611
、 600
、 544
、などは一致しません。
これまでに見たすべての例はファイルを返します。ただし、ディレクトリのみを検索する必要がある場合は、 -type d
を使用できます。 スイッチ。
つまり、 find
を防ぐことができます -type d
を使用して、ディレクトリ以外の他のファイルタイプを検索するLinuxのコマンド フラグ( d
ディレクトリを意味します。
scripts
という名前のフォルダを検索するには / home
で ディレクトリ、実行:
find /home -type d -name scripts
同様に、これまでに示した他のすべてのオプションは、ディレクトリを検索するときにも適用できます。
find
の詳細については Linuxでコマンドを実行するには、そのマニュアルページを参照してください。
locateコマンドを使用してLinuxでファイルとディレクトリを検索
find
Linuxでファイルを検索するための最も人気があり強力なコマンドラインユーティリティの1つであることは間違いありません。瞬時の結果が必要な状況では、十分な速度ではありません。
locate
コマンドはfind
よりも高速です find
に対して、以前に構築されたデータベースを使用するため、コマンド コマンドは、実際のすべてのディレクトリとファイルをリアルタイムで検索します。
locate
の場合 がインストールされていない場合は、Linuxディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
Ubuntuまたはその他のDebianベースのシステムでは、次のコマンドを入力します。
sudo apt install mlocate
FedoraまたはCentOSを使用している場合は、代わりに次のコマンドを使用してください:
sudo dnf install mlocate
Arch Linuxユーザーは以下を実行する必要があります:
sudo pacman -S mlocate
locate
の前 使用できる場合は、データベースを作成する必要があります。これは、 updatedb
を使用して行われます。 コマンド。(名前が示すように)データベースを更新します。
sudo updatedb
データベースは毎日自動的に更新されますが、いつでも自分で更新できるため、最新の結果を得ることができます。
locate
コマンドは非常に使いやすいです。検索するファイル名を渡すだけです。
locate report.pdf
find
と同じように コマンド、 Locate
大文字と小文字を区別する方法でクエリを処理するように構成されています。 locate
を取得するには コマンド大文字と小文字の区別を無視 大文字と小文字の両方のクエリの結果を表示するには、 -i
を使用する必要があります オプション。
locate -i rEpoRT.pdf
文字列.pdf
を持つすべてのファイル名を検索する場合 それらの中で、 Locate
を使用してそれを行うことができます 次のように:
locate '*.pdf'
検索結果を制限することができます -n
を使用して検索結果の冗長性を回避するために、必要な数に変更します オプション。
たとえば、クエリから10件の結果だけが必要な場合は、次のコマンドを入力できます。
locate -n 10 '*.pdf'
Locateコマンドを使用してファイル名または検索パターンの出現回数をカウントするには、 -c
を呼び出します。 示されているオプション。
locate -c '*.pdf'
ロケートデータベースmlocate.db
に関するより多くの洞察を収集するには そのlocate
カタログ化した場合は、 -S
を使用してください オプション:
locate -S
Database /var/lib/mlocate/mlocate.db:
72376 directories
1142596 files
98622214 bytes in file names
33950606 bytes used to store database
必要に応じて、 Locate
のマニュアルページをご覧ください。 コマンド。
Linuxユーザーがアクセスできる最も広く使用されているファイル検索ユーティリティは2つあり、 find
と呼ばれます。 およびlocate
。どちらも、システム上のファイルを見つけるための良い方法です。これらのツールのどれがそれぞれの状況に適しているかを決めるのはあなた次第です。
この記事では、Linuxシステムでファイルを見つける方法の基本を理解する必要があります。オプションが個別に提示された場合でも、探しているファイルをさらに指定できるように、それらを組み合わせることができることを覚えておく必要があります。