GNU/Linux >> Linux の 問題 >  >> Linux

プロのようにLinuxでファイルとディレクトリを探す

このガイドでは、「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システムでファイルを見つける方法の基本を理解する必要があります。オプションが個別に提示された場合でも、探しているファイルをさらに指定できるように、それらを組み合わせることができることを覚えておく必要があります。


Linux
  1. Linuxでファイルとディレクトリを隠す簡単な方法

  2. Linuxで最大のファイルとディレクトリを探す

  3. Linux – Unix / linux Osesの標準および/または共通ディレクトリ?

  1. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  2. Linuxでトップディレクトリとファイル(ディスク容量)を見つける方法

  3. ファイルを検索してコピーする

  1. Linuxの検索コマンド

  2. Linux ファイルとディレクトリの削除

  3. Linux で空のディレクトリとファイルを見つけて削除する方法