LinuxのFindコマンド(ファイルとディレクトリを検索)

0 Comments

findコマンドは、Linuxシステム管理者の兵器庫で最も強力なツールの一つです。 この検索のためのファイルやディレクトリのディレクトリ階層に基づき与えられたユーザの表現が可能なユーザ指定されたアクションの各マッチファイルです。

findコマンドを使用すると、権限、タイプ、日付、所有権、サイズなどに基づいてファイルとディレクトリを検索できます。, また、grepsedなどの他のツールと組み合わせることもできます。

findコマンド構文#

findコマンドの一般的な構文は次のとおりです。

  • options属性は、シンボリックリンク、デバッグオプション、および最
  • path...属性は、findがファイルを検索する開始ディレクトリまたはディレクトリを定義します。,
  • expression属性は、オプション、検索パターン、および演算子で区切られたアクションで構成されています。

ディレクトリ内のファイルを検索するには、findコマンドを呼び出すユーザーには、そのディレクトリに対する読み取り権限が必要です。

次の例を見てみましょう。

名前でファイルを検索#

名前でファイルを検索することは、おそらくfindコマンドの最も一般的な使, 名前でファイルを検索するには、-nameオプションの後に検索するファイルの名前を使用します。

たとえば、document.pdfディレクトリ内の/home/linuxizeという名前のファイルを検索するには、次のコマンドを使用します。

大文字と小文字を区別しない検索を実行するには、-nameオプションを-iname:

上記のコマンドは”ドキュメント”と一致します。pdf”、”ドキュメント。pdf”。.など。,

拡張子でファイルを検索#

拡張子でファイルを検索することは、名前でファイルを検索することと同じです。 たとえば、.log.gz/var/log/nginxディレクトリ内の.log.gzで終わるすべてのファイルを検索するには、次のように入力します。

パターンを引用するか、アスタリスク*バックスラッシュ付きのシンボル\ワイルドカード文字を使用するときにシェルによって解釈されないようにします。,正規表現に一致しないすべてのファイルを検索するには*.log.gz-notオプションを使用できます。 たとえば、*.log.gzで終わらないすべてのファイルを検索するには、次のように使用します。

タイプ別にファイルを検索#

通常のファイル、ディレクトリ、シンボリックリンクなどの特定のファイルタイプを検索する必要がある場合があります。 Linuxでは、すべてがファイルです。,div>:named pipe(FIFO)

  • s:socket
  • たとえば、現在の作業ディレクトリ内のすべてのディレクトリを検索するには、次のように使用します。

    一般的な例は、webサイトファイルのアクセス許可を644に再帰的に変更し、ディレクトリのアクセス許可を755chmodコマンドを使用します。

    サイズでファイルを検索#

    ファイルサイズに基づいてファイルを検索するには、-sizeパラメータ,9fdb538a6b”>

    :512バイトブロック(デフォルト)

  • c:バイト
  • w:二バイトワード
  • k:キロバイト
  • M:メガバイト
  • G:ギガバイト
  • 次のコマンドは、1024/tmpディレクトリ内のすべてのファイルを検索します。

    findコマンドを使用すると、指定したサイズよりも大きいか小さいファイルを検索することもできます。,

    次の例では、現在の作業ディレクトリ内の1MBより小さいすべてのファイルを検索します。 サイズ値の前にマイナス-シンボル:

    1MBより大きいサイズのファイルを検索する場合は、プラス+シンボル:

    サイズ範囲内のファイルを検索することもできます。, 次のコマンドは、12MBの間のすべてのファイルを検索します。

    変更日付でファイルを検索#

    findコマンドは、最終変更、アクセス、または変更時刻に基づいてファイルを検索することもできます。

    サイズで検索する場合と同じように、”より大きい”または”より小さい”にはプラス記号とマイナス記号を使用します。

    数日前に、dovecot設定ファイルのいずれかを変更しましたが、どちらを忘れてしまったとしましょう。, /etc/dovecot/conf.dディレクトリの下にあるすべてのファイルを簡単にフィルタリングできます。.confで終わり、過去五日間に変更されました。

    -daystartオプションを使用して、変更日に基づいてファイルをフィルタリングする別の例を次に示します。, 以下のコマンドは、/homeディレクトリ内の30以上前に変更されたすべてのファイルを一覧表示します。

    パーミッションによるファイルの検索#

    -permオプションを使用すると、ファイルのパーミッションに基づいてファイルを検索できます。,

    たとえば、775/var/www/htmlディレクトリ内の

    数値モードの前にマイナス-またはスラッシュ/

    スラッシュ/プレフィックスとして使用される場合、少なくとも一つのカテゴリ(ユーザー、グループ、またはその他)には、一致するファイルに対して少なくともそれぞれのビットが設定されていなければなりません。,

    次のコマンド例を考えてみましょう。

    上記のコマンドは、ユーザー、グループ、または他のユーザーに設定された読み取り権限を持つすべてのファイル

    マイナス-プレフィックスとして使用される場合、ファイルが一致するには、少なくとも指定されたビットを設定する必要があります。, 次のコマンドは、所有者およびグループに対する読み取りおよび書き込み権限を持ち、他のユーザーが読み取り可能なファイルを検索します。

    所有者によるファイルの検索#

    特定のユーザーまたはグループが所有するファイルを検索するには、-userおよび-groupオプションを使用します。

    たとえば、ユーザーが所有するすべてのファイルとディレクトリを検索するにはlinuxize、次のように実行します。

    以下は実世界の例です。, ユーザーが所有するすべてのファイルを検索したいとしましょうwww-data一致したファイルの所有権をwww-dataからnginx:

    ファイルの検索と削除#

    一致するファイルをすべて削除するには、-delete一致式の最後までのオプション。

    このオプションは、削除するファイルと結果が一致すると確信している場合にのみ使用してください。, -deleteオプションを使用する前に、一致したファイルを印刷することをお勧めします。

    たとえば、.tempで終わるすべてのファイルを/var/log/から削除するには、次のようにします。

    -deleteオプション findコマンドは式として評価され、最初に-deleteオプションを追加すると、コマンドは指定した開始点以下のすべてを削除します。,ディレクトリに関しては、find空のディレクトリのみを削除できます。rmdirと同じです。

    結論#

    さまざまなオプションと条件でfindコマンドを使用する方法を示しました。

    この記事では、Linuxシステム上のファイルを見つける方法についての基本的な理解を提供する必要があります。 また、findマニュアルページにアクセスし、findコマンドの他のすべての強力なオプションについて読むこともできます。


    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です