シェルプログラミング - 詳細[05]、Linuxのfindコマンド

シェルプログラミング[シリーズ] 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' \)
公開された34元の記事 ウォン称賛7 ビュー8160

おすすめ

転載: blog.csdn.net/ilo114/article/details/91419326