find command unix
Unixでの検索コマンドの概要:Unixファイル検索コマンドを使用してファイルとディレクトリを検索する
Unix findコマンドは、ファイルまたはディレクトリを検索するための強力なユーティリティです。
検索はさまざまな基準に基づいて行うことができ、一致するファイルは定義されたアクションを介して実行できます。このコマンドは、指定された各パス名のファイル階層を再帰的に降順します。
=> 完全なUnixチュートリアルシリーズについては、ここをクリックしてください
学習内容:
Wi-Fiのネットワークセキュリティキーの場所
Unixでコマンドを検索
構文:
find (options) (paths) (expression)
このコマンドのオプションは、シンボリックリンクの処理方法を指定するために使用されます。この後に、検索するパスのセットが続きます。パスが指定されていない場合は、現在のディレクトリが使用されます。次に、指定された式が、パスで見つかった各ファイルで実行されます。
式は一連のオプション、テスト、およびアクションで構成され、それぞれがブール値を返します。式は、結果が決定されるまで、つまり結果がtrueまたはfalseであることがわかるまで、パス内の各ファイルについて左から右に評価されます。
- オプション式は、検索操作を制約するために使用され、常にtrueを返します。
-
- -depth:ディレクトリ自体を処理する前に、ディレクトリの内容を処理します。
- -maxdepth:一致のために下降するために提供されたパスより下の最大レベル。
- -mindepth:一致する前に下降する、指定されたパスを超える最小レベル。
-
- テスト式は、ファイルの特定のプロパティを評価し、それに応じてtrueまたはfalseを返すために使用されます。 (カウント「n」が使用される場合は常に、接頭辞がない場合、一致はnの正確な値になります。「+」接頭辞がある場合、一致はnより大きい値になります。また、接頭辞が「-」の場合、一致します。 n未満の値の場合。)
-
- -atime n:ファイルがn日前にアクセスされた場合はtrueを返します。
- -ctime n:ファイルのステータスがn日前に変更された場合はtrueを返します。
- -mtime n:ファイルの内容がn日前に変更された場合はtrueを返します。
- -name pattern:ファイルの名前が指定されたシェルパターンと一致する場合にtrueを返します。
- -iname pattern:ファイルの名前が指定されたシェルパターンと一致する場合にtrueを返します。ここでのマッチングでは大文字と小文字は区別されません。
- -path pattern:パスを含むファイルの名前がシェルパターンと一致する場合、trueを返します。
- -regex pattern:パスを含むファイルの名前が正規表現と一致する場合にtrueを返します。
- -size n:ファイルサイズがnブロックの場合、trueを返します。
- -perm – mode:モードのすべての許可ビットがファイルに設定されている場合はtrueを返します。
- -type c:ファイルがタイプcの場合はtrueを返します(たとえば、ブロックデバイスファイルの場合は「b」、ディレクトリの場合は「d」など)。
- -username:ファイルがユーザー名「name」によって所有されている場合はtrueを返します。
-
- アクション式は、副作用があり、trueまたはfalseを返す可能性のあるアクションを定義するために使用されます。アクションが指定されていない場合、一致するすべてのファイルに対して「-print」アクションが実行されます。
-
- -delete:一致したファイルを削除し、成功した場合はtrueを返します。
- -execコマンド:一致するファイルごとに指定されたコマンドを実行し、戻り値が0の場合はtrueを返します。
- -okコマンド:「exec」式と同様ですが、最初にユーザーに確認します。
- -ls:一致するファイルを「ls-dils」形式で一覧表示します。
- -print:一致するファイルの名前を出力します。
- -prune:ファイルがディレクトリの場合、そのファイルに降りないで、trueを返します。
-
- 式は左から右に評価され、次の演算子を使用してまとめられます。
-
- ( expr ) :優先順位を強制するために使用されます。
- ! expr:式を否定するために使用されます。
- expr1 -に expr2:結果は、2つの式の「and」です。 expr2は、expr1がtrueである場合にのみ評価されます。
- expr1 expr2:この場合、「and」演算子は暗黙的です。
- expr1 -または expr2:結果は、2つの式の「または」です。 expr2は、expr1がfalseである場合にのみ評価されます。
-
例
現在のディレクトリとその階層で見つかったすべてのファイルを一覧表示します
$ find.
現在の階層で見つかったすべてのファイルと、/ home / xyzの下のすべての階層を一覧表示します
$ find. /home/XYZ
現在のディレクトリとその階層でabcという名前のファイルを検索します
$ find ./ -name abc
現在のディレクトリとその階層でxyzという名前のディレクトリを検索します
$ find ./ -type d -name xyz
現在のディレクトリの下にあるabc.txtという名前のファイルを検索し、一致するものを削除するようにユーザーに促します。
「{}」文字列は実行中に実際のファイル名に置き換えられ、「;」は文字列は、実行するコマンドを終了するために使用されます。
$ find ./ -name abc.txt -exec rm -i {} ;
現在のディレクトリの下で過去7日間に変更されたファイルを検索します
$ find ./ -mtime -7
現在の階層ですべての権限が設定されているファイルを検索します
$ find ./ -perm 777
結論
つまり、UnixのFind Commandは、現在の作業ディレクトリの下にあるすべてのファイルを返します。さらに、findコマンドを使用すると、一致した各ファイルに対して実行するアクションをユーザーが指定できます。
=> 完全なUnixチュートリアルシリーズについては、ここをクリックしてください