Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxの詳細なFindコマンド

Linuxの詳細なFindコマンド

  

findコマンドはLinuxでは非常に実用的で、Microsoftシステムの検索機能よりもさらに豊富です。 Lao Caiが、Findコマンドの構文と実際の動作について説明するようになりました。

find構文:

find [開始ディレクトリ]条件付き演算の検索

次の表現方法もあります。find PATH OPTION [-exec COMMAND {} \\;] < Br>

findコマンドは、与えられたオプションに基づいてファイルとそのサブディレクトリ内のファイルを再帰的に検索するので、つまり条件を探すので、この場所は "ld"だと思います。開始ディレクトリ'はとても良いです。

このコマンドの検索条件は、論理演算子not、and、またはで構成される複合条件にすることができます。論理演算子and、またはnotの意味は次のとおりです。

(1)and:logical AND(' -a'のコマンドで表されます)は、指定された条件のみを示すシステムデフォルトオプションです。両方が満たされている場合、条件の検索は満足できるものと見なされます。たとえば、次のようになります。

find&name; lmpquo; tmp&rndqu; x type c -user‘ inin’

%このコマンドは、指定された3つの条件すべてを満たすすべてのファイルを検索します。

(2)or:コマンド内で' -o'で表される論理和。この演算子は、与えられた条件の1つが満たされている限り、検索条件が満たされていることを示します。たとえば、次のようになります。

find&name;< name> name‘< name> name‘
< p>%コマンドクエリファイル名は’ tmp’と一致します。 Mina *’すべてのファイル

(3)not:'!'のコマンドにロジックが示されていません。この演算子は、与えられた条件を満たさないファイルが見つかったことを示します。たとえば、次のようになります。

find!– name‘ tmp’

%このコマンドは、ファイル名が‘ tmp’ではないすべてのファイルを照会します。

多くのロジックオプションを使用する場合は、これらのオプションを囲むことができます。シェル自体が括弧を誤解しないようにするには、電話番号の前にエスケープ文字' \\'を追加して角かっこの意味を削除する必要があります。

例:

find \\(– name‘& ndash; xtype c -user‘ inin’ \\)

私が言うべきことだと思います

-name‘ string’指定した文字列と一致するファイル名を検索します。すべてのファイルで、ワイルドカード文字*、?、[]が文字列で使用可能です。

-lname‘文字列’ファイル名が指定した文字列と一致するすべてのシンボリックリンクファイルを検索します文字列にはワイルドカード*、?、[]を使用できます。

-gid n ID番号nのユーザーグループに属するすべてのファイルを検索します。

-uid n ID番号nのユーザーに属するすべてのファイルを検索します。

-group‘ String’ stringという名前のユーザーグループに属するすべてのファイルを検索します。

-user‘文字列’文字列で指定されたユーザー名に属するすべてのファイルを検索します。

-emptyサイズ0のディレクトリまたはファイルを探します。

-path’文字列’パス名が指定した文字列と一致するすべてのファイルを検索します文字列にはワイルドカード文字*、?、[]を使用できます。

-perm Permissions指定された権限を持つファイルおよびディレクトリを検索します権限の表現は711,644になります。

-size n [bckw]指定されたファイルサイズのファイルを検索しますnの後の文字は単位を表し、デフォルトはb、つまり512バイトのブロックを表します。

-type x xが次のいずれかの文字であるタイプxのファイルを検索します。

bブロックデバイスファイル

cキャラクタデバイスファイル

dディレクトリファイル

p名前付きパイプ(FIFO)

f通常ファイル

lシンボリックリンク

sソケットファイル

-xtype xは基本的に-typeと同じですが、シンボリックリンクファイルのみを探します。

時間どおりに検索

-amin n n分前にアクセスされたすべてのファイルを検索します。

-atime n n日前にアクセスされたすべてのファイルを検索します。

-cmin n n分前にファイルの状態が変更されたすべてのファイルを検索します。

-ctime n n日前にファイルの状態が変更されたファイルをすべて検索します。

-mmin n n分前にファイルの内容が変更されているすべてのファイルを検索します。

-mtime n n日前に内容が変更されたファイルをすべて検索します。

-print:検索結果を標準出力に出力します。

例:ディレクトリ/root /bin、ギリシャ語のユーザー、ファイルの種類が通常のファイル、およびtest-find.cという名前のファイルが含まれていないルートファイルとサブディレクトリファイルを探します。構造出力、findコマンドは次のとおりです。

find /-name' test-find.c' -type f -mtime + 3 -user greek -prune /root /bin -print

もちろんこの場合、-printはデフォルトのオプションです。意図的に設定する必要はありません。

execオプションを見てみましょう。

-exec:検索構造ディレクティブに指定されたシェルコマンド。形式は正しいことに注意してください。< -exec command {} \\;'

}と\\の間にスペースが必要です。

{}は、コマンドのパラメータがファイルが見つかりました;コマンドの終わりは' \\;'で終わっていなければなりません。

例:上記の例で検索されたファイルを削除するには、コマンドは次のようになります。

find /-name' test-find.c' -type f -mtime + 3 -user greek -prune /root /bin -exec rm {} \\;

findコマンドディレクティブの例:

find。– name‘ main *’– exec more {} \\; < Br>

%現在のディレクトリ内でmainで始まるすべてのファイルを検索し、それらのファイルの内容を表示します。

find。\\( - 名前a.out&nd; o&nd; name‘ *。o’ \\)>– atime +7– exec rm {} \\;

%現在のディレクトリ内で全週間アクセスされていない.outファイルまたは* .oファイルを削除します。

%コマンド中の'。'はカレントディレクトリを示していますこの時点でfindはカレントディレクトリから始まり、指定された条件に合うサブディレクトリ内のファイルを見つけます。

%' \\('および' \\)'は括弧()を意味し、' \\'はエスケープ文字と呼ばれます。その理由は、シェルにとっては、(and)の意味が異なるためです。ここで条件を組み合わせる目的ではありません。

%' -name a.out'は、a.outという名前のファイルを探すことを意味します。

%' -name‘ *。o’'は、探すことを意味します。名前が.oで終わるすべてのファイル。

これら2つの-nameの間の-oは、論理OR(または)を表します。これは、名前がa.outまたは名前が.oで終わるファイルを見つけるためのものです。

%現在のディレクトリとそのサブディレクトリにあるファイルを検索し、最後のアクセス時刻が7日前かどうかを判断し(条件-atime + 7)、存在する場合はこのファイルはコマンドrm(-exec rm {} \\;)を実行します。

ここで{}は現在見つかっている修飾ファイル名を表し、\\;は文法上必須です。

%上記のコマンドの最初の行の最後の\\は継続文字です。コマンドが長すぎて1行に書き込めない場合は、\\を入力するとシステムは>を表示してユーザーにコマンドの入力を続けるように指示します。

Copyright © Windowsの知識 All Rights Reserved