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

検索コマンドを使用してLinuxでファイルを検索する方法

はじめに

find コマンドを使用すると、Linuxコマンドラインインターフェイスを使用して特定の文字列を検索できます。ファイル名に限定されないため、非常に実用的なツールです。これを使用して特定の場所を検索したり、検索の動作を制御するオプションを追加したり、追加のコマンドを使用して、検出したデータの管理方法を指示したりできます。

このチュートリアルでは、findを使用してLinuxでファイルを検索および管理する方法を示します。 コマンド。

前提条件

  • ターミナルウィンドウ/コマンドラインへのアクセス
  • sudoのユーザーアカウント 特権

基本的な検索コマンド構文

基本的な構文 find コマンドは次の形式を使用します:

find <options> <location> <expression> <action> <name>
  • 場所– findに指示します 検索語の検索を開始する場所。
  • 表現 findに通知します 探すべき情報のカテゴリ。
  • アクション –アクション 属性は、検索結果に対してコマンドを実行します。これはオプションの要素です。
  • 名前– 検索しているテキスト(またはその他のデータ)の文字列を表します。
  • オプション– この属性は、 findの必須要素ではありません 指図。動作を制御し、検索プロセスを最適化するために使用できます。

検索コマンドの使用方法

find コマンドは、検索に含めた文字列のすべてのインスタンスを一覧表示します。 find このコマンドを使用すると、検索パラメータ、オプション、場所を高レベルの精度で定義することもできます。

場所でファイルを検索

場所の文字列に基づいてファイルを検索するには、次のような簡単なコマンドを使用できます。

sudo find /home/user filename

このコマンドは、ユーザーを検索します ホームのアカウント ディレクトリ。どこを見たいかわからない場合は、検索場所を広げることができます。

たとえば、2つのユーザーアカウントがあり、どちらにファイルを保存したか覚えていない場合は、次のように入力できます。

sudo find /home filename

find コマンドは/homeの下のすべてを検索します 検索語のディレクトリ(すべてのユーザーディレクトリを含む)。この例では、検索語はファイル名です。 。

ピリオドを使用する. 現在いるディレクトリを検索するには:

sudo find .

スラッシュを入力/ 、システムはハードドライブ全体を検索します:

sudo find /

チルダ文字~ 現在のユーザーのホームディレクトリを検索するために使用されます:

sudo find ~

findコマンドで式を使用する

式は、 findに追加のパラメーターを適用します コマンド検索プロセス。最も一般的な式は-nameです。 。この式は、指定した場所で、 nameに入力した名前のファイルを検索します。 フィールド。

sudo find –name settings.txt

システムは、現在のディレクトリでsettings.txt。という名前のファイルを検索します。

システムは、検索語と完全に一致するファイル名のみを表示します。たとえば、ファイル名に大文字が含まれている場合、この制限により問題が発生する可能性があります。

findを伝えるには 大文字/小文字を無視するには、 –inameを使用します 次のような表現:

sudo find /home –iname filename

システムは/homeを検索します ディレクトリを作成し、ファイル名という名前のファイルを返します 、ファイル名 、さらにはファイル名

–type dを使用します ファイルとディレクトリのどちらを検索するかを指定する式:

sudo find . –type d –name Videos

このコマンドは、現在のディレクトリ(ピリオド付き)で「ビデオ」という名前のディレクトリを検索します。 。」

デフォルトでは、 find ファイルを検索しますが、 -type fを使用してファイルを指定できます

検索された名前を含まないすべてのファイルを表示します:

sudo find . -not filename

指定された権限レベルのファイルを検索します:

sudo find . -perm 0000

特定のユーザー名が所有するすべてのファイルのリストを返します:

sudo find . -user username

最後に変更された00ファイルを表示します:

sudo find . -mtime 00

数値は、システムが表示するファイルの数を定義します。最後にアクセスした00個のファイルを表示します:

sudo find . -atime 00

20メガバイトを超えるすべてのファイルを表示する:

sudo find . -size +20M

ターミナルには、サイズ基準に一致するすべてのファイルのリストが表示されます。

検索されたアイテムのサイズを参照するコマンドを個別に使用して、特定のサイズよりも大きい、特定のサイズよりも小さい、または定義された範囲内のすべてのファイルを表示できます。

名前または拡張子を検索

name 属性は、検索のオブジェクトを定義します。 find ツールは、入力した文字列が何であれ、指定された場所に移動します。通常、探しているファイルの名前は、コマンドの最後、場所、オプション、式の後にあります。

コマンドの最後に、標準の文字と数字が文字列として入力されます。特殊文字(ワイルドカード、ピリオド、スラッシュなど)では、名前を一重引用符で囲む必要があります。一重引用符は、システムがリクエストを正しく解釈することを保証します。

次のコマンドを入力して、 .htmlなどの特定の拡張子を持つファイルを検索します または.php

sudo find . –type f –name ‘*.html’

システムは現在のディレクトリで通常のファイルを検索します( type –f 拡張子が.phpの 。この場合、アスタリスク( * 記号)はワイルドカードとして使用されます 、つまり、任意のタイプの任意の数の文字を表すことができます。

ワイルドカードは、ファイル名の一部しか覚えていない場合、または特定の拡張子を持つファイルを検索する場合に役立ちます。

findコマンドを使用してアクションを実行する

findの使用方法を見てきました ターミナルウィンドウに検索結果を表示するコマンド。 アクション 属性を使用すると、その機能を強化し、ファイルが見つかったら特定のタスクを実行できます。

次のコマンドは、(ファイルの名前だけでなく)ファイルの実際のコンテンツを検索します。

sudo find ~ –type f –exec grep “contents” ‘{}’ \; –print
  1. システムにファイルを検索するように要求しています( -type f )ユーザーのホームディレクトリ( ~
  2. システムにアクションを実行するように指示します( -exec grepを実行する すべてのファイルのコンテンツからcontentsという単語を検索するコマンド 。
  3. {} 角かっこは、 findの一致結果を示します コマンド、およびそれらは一重引用符で囲まれているため、 grep コマンドはそれらを誤解しません。
  4. grepを終了します セミコロンを使用したコマンド( ; )、バックスラッシュを使用しています( \ )システムがセミコロンを命令として誤解しないようにします。
  5. 最後に、 –print オプションは、結果を表示するようにシステムに指示します。

このコマンドをコピーしてターミナルウィンドウに貼り付け、検索パスをに置き換えます 文字、および単語contentsの検索語

find –execを使用できます ファイルのアクセス許可をすばやく変更するための組み合わせ:

sudo find /path –name “filename.ext” –exec chmod 777 ‘{}’ \;

このコマンドは–execを使用します chmodを実行するコマンド ファイルのファイル権限を変更するにはfilename.ext 誰でも読み取り、書き込み、実行できるようにします。

findコマンドを使用してファイルを見つけて削除する

–deleteを使用 コマンドを使用すると、1つのコマンドで1つまたは複数のファイルをすばやく検索して削除できます。

この例では、 find .htmlで終わるすべてのファイルを削除します 拡張。

sudo find . –name “*.html” –delete

このコマンドは、現在のディレクトリ(コマンドプロンプトに表示されている)で .htmlのすべてのファイルを検索します。 拡張子を付けて削除します。画像はプロセスの単純さを示しています。

このタイプのアクションは、“ * .bak” に置き換えた場合に、古いバックアップファイルを削除するのに役立ちます。 「*。bmp」の代わりに。

コマンドを見つけるためのオプションを追加

オプションは、 findの検索パスの前に挿入される特殊な関数です。 コマンド文字列。 -L -H 、および -P シンボリックリンクの処理を制御するために使用されるオプションの要素です。

  • –P このオプションは、デフォルトの動作を表します。システムはシンボリックリンクをたどりません。
  • -H この特定のコマンドを処理している間を除いて、システムはシンボリックリンクをたどりません。
  • -L シンボリックリンクをたどります。情報は、リンク先のファイルから取得されます。リンク自体ではありません。

オプションは検索最適化レベルを変更できます。検索プログラムが検索を整理する方法とその検索の実行速度を定義する3つの最適化レベルがあります。

  • –O1この最適化レベルはデフォルトで使用されます。ファイル名に基づく検索が最初に実行されます。
  • –O2タイプに基づく検索は、名前に基づく検索の直後に実行されます。他の検索が行われる前。
  • –O3検索は、速度を最大化するために実行されます。他のクエリ要素に関係なく。

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

  2. findコマンドを使用して権限を監査する方法

  3. Linuxで重複ファイルを見つける方法は? fdupesコマンドのヘルプがここにあります!

  1. Linuxのfindコマンドの使用–例を使用した使用法

  2. Linuxでfdコマンドを使用してファイルを検索する方法

  3. Linux の find コマンドを使用してファイルを検索する方法

  1. Linuxでファイルを見つける方法

  2. 例を使用してLinuxsleepコマンドを使用する方法

  3. Linux ですべてのスパース ファイルを見つける方法