シェルプログラミング[シリーズ] https://blog.csdn.net/ilo114/article/category/8961526
高周波数パラメータ:
ファイル名を検索し-name
検索/ etcディレクトリのconfファイルで終わります
find /etc -name '*conf'
-inameは、ファイル名に基づいてケースを無視して下さい
現在のディレクトリ内のabcファイルという名前のファイル、および大文字と小文字を区別しないを探します
find ./ -iname abc
そのユーザー-userの検索によると、
ファイル所有者testuserをファイルの現在のディレクトリを検索
find ./ -user testuser
ユーザー・グループによると-group検索
ファイルには、すべてのファイルのワークグループで検索
find . -group work
タイプ型の検索に応じて、
- Fファイルのfind。-type F
- Dディレクトリ検索。-type D
- Cキャラクタデバイスファイルのfind。-type C
- Bブロックデバイスファイルのfind。-type B
- Lリンクされたファイルを検索します。-typeリットル
- p個のパイプファイルのfind。-type P
サイズによっては検索-size
- n個のファイルのサイズよりも小さい-n
- + Nはより大きく、nより小さいファイル
例1:10000バイト未満ファイル検索/ etcディレクトリ
find /etc -size -10000c
例2:1M / etcディレクトリを超えるファイルを検索
find /etc -size +1M
-mtimeファイルの変更(日数)を見つけるために時間に応じて
- 変更されたファイルの日以内に-nn
- nnの日以外の+変更されたファイル
- nはちょうどn日のファイルを変更します
例1:/変更confのを見つけ、5日の終わりにetcディレクトリのファイル
find /etc -mtime -5 -name '*.conf'
例2:検索/変更所有者etcディレクトリと10日のルート・ファイルの前に
find /etc -mtime +10 -user root
時間を見つけて、ファイルに依存-mmin変更(分)
- -nNは、数分以内にファイルを修正しました
- NN分以外の+変更されたファイル
例1:検索ファイルは、/ etcディレクトリの前に30分を変更しました
find /etc -mmin +30
例2:/ etcディレクトリのディレクトリの30分以内の変更を探します
find /etc -mmin -30 -type d
-mindepth N Nレベルのサブディレクトリの検索を表します
例0:の/ etc検索の開始]のサブフォルダで3レベル
find /etc -mindepth 3
-maxdepth N Nサブディレクトリレベルを見つけるまで表します
例1:予選の検索下の/ etcファイルが、ほとんどは、サブディレクトリレベルを検索2
find /etc -maxdepth 3 -name '*.conf'
例2:
find ./etc/ -type f -name '*.conf' -size +10k -maxdepth 2
パラメータを学ぼう:
ないユーザのホームに属し-nouser検索
find . -type f -nouser
ユーザーがいないグループに属している検索-nogroup
find . -type f -nogroup
ユーザーの権限に基づいて-perm検索
find . -perm 664
-pruneは見つけるために、特定のディレクトリを除外します
- 特定のディレクトリ検索条件を除外するためにこれは通常、-pathで使用されています
例1:現在のすべての一般的なファイルディレクトリを検索しますが、テスト用ディレクトリを除外
find . -path ./etc -prune -o -type f
例2:現在のディレクトリ内のすべての通常のファイルを検索し、しかしなど除外、およびoptディレクトリ
find . -path ./etc -prune -o -path ./opt -prune -o -type f
例3:現在のディレクトリ内のすべての通常のファイルを検索しますが、などを除外し、OPTディレクトリが、所有者はHDFSです
find . -path ./etc -prune -o -path ./opt -prune -o -type f -a -user hdfs
例4:など、すべての一般的なファイルのカレントディレクトリを検索し、ディレクトリを除くOPTが、HDFSによって所有され、ファイルサイズが500バイトよりも大きくなければなりません。
find . -path ./etc -prune -o -path ./opt -prune -o -type f -a -user hdfs -a -size +500c
-newer FILE1
find /etc -newer a
操作:
-print印刷出力
-execファイルフォーマット-exec「コマンドを」{}検索で特定の動作を行います。
例1:[検索]などの下に/ファイル(非ディレクトリ)、のconfで終わるファイル、および10Kより大きく、そしてそれを削除
find ./etc/ -type f -name '*.conf' -size +10k -exec rm -f {} \;
例2:ログファイルの末尾に下には/ var / log /ディレクトリに、削除して、7日以上の時間を変更します
find /var/log/ -name '*.log' -mtime +7 -exec rm -rf {} \;
例3:1つの検索条件と同じの例が、削除しませんが、/ルート/ confディレクトリにコピーします
find ./etc/ -size +10k -type f -name '*.conf' -exec cp {} /root/conf/ \;
-okとexec関数同じですが、各操作は、ユーザーのヒントを与えるだろう
論理演算子:
-aと
-oまたは
-not |!ノン
例1:すべてのファイルのHDFSの所有者、カレントディレクトリを検索しません
find . -not -user hdfs | find . ! -user hdfs
ファイルが現在のディレクトリを検索し、HDFSの主要部分であり、300バイトよりもサイズが大きい実施例2
find . -type f -a -user hdfs -a -size +300c
例3:普通で終わる現在のディレクトリHDFSまたはXMLファイルに所有者を探します
find . -type f -a \( -user hdfs -o -name '*.xml' \)