テキスト検索ツールfind


which:バイナリまたは実行コマンドパスの検索
    [root@localhost ~]# which free      : /usr/bin/free

locate:非リアルタイムのファジイクエリの毎日の更新
(内蔵データベースにより、システムファイルがデータベースにマッピングされ、前夜に自動的に更新されたターゲットファイルが瞬時に検索されます)
-bマッチングベース名
-c統計がどれだけ条件を満たしているか
updatedb手動更新
find:リアルタイム、ファイル遍歴、正確なマッチング、速度がやや遅い
-a:と
-o:または
-not:非優先度が最も低く、組み合わせて使用するグループ()
-fls/PATH/TO/SO/SMEFILE find後、一致した結果をファイルに保存
-ok COMMAND{}インタラクティブリファレンス-ok前の結果
    -exec COMMAND{}\; :直接参照-execの前の結果注意末尾の";"
ファイル名に基づいて検索:
       find /tmp -name 'passwd*' -ls  ----      passwd       
       find /tmp -iname 'passwd*' -ls ----      

所有者、グループ、UIDに基づいて検索:
       find /tmp -user mysql -ls  ----  /tmp    mysql   
       find /tmp -group mysql -ls ----   /tmp    mysql   

所有者がいないファイルを検索するには、次の手順に従います.
       find /tmp -nouser

所有者のないファイルを削除するには、次の手順に従います.
       find /tmp -nouser -exec rm{} \;  ---- -exec         {}      

ファイルタイプに基づいて検索:
       find /etc/ -type f/d/l/s/b/c/p ----       、  、  、         

ファイルサイズに基づいて検索:(2 kを検索するファイルが1-2 kであれば2 k)
        find /etc -size 2k -ls ---- 1-2k   
        find /etc -size -2k -ls ---- 0-1k   
        find /etc -size +3k -ls -a -size -9k -ls ----   3k   9k   

タイムスタンプベースの検索:
式:日付が変更されました.[#,#-1);#日内変更-#:(#,0];#日前変更+#:(00,#-1)
3月9日21时、3日前のファイルを検索して、検索したファイルの时间は3月5日21时からマイナスの无限の时间でなければならなくて、3日目の前で、3日目を含まないため、(今日の前で、昨日の23时59分59秒)
        find /var/log -mtime +3 -type f -ls---->           

    
理解:現在の時間の3月9日の21時、3日間の内のファイルを照会して、照会したファイルは3月6日の21時から3月9日の21時までの内容でなければならなくて、比較の公式は見ます
        find /var/log -time -3 -type f -ls ---->             

     
理解:現在の時間の3月9日21時、3日目のファイルを検索して、検索したファイルは3月6日21時から3月7日21時までの内容であるべきで、比較式は理解を調べます
        find /var/log -mtime 3 -type f -ls ---->               

アクセス権ベースの検索:
           -perm
MODE:正確な権限照合
/MODE:(u,g,o)オブジェクトの権限の中で1人が同じであれば一致する
-MODE:各クラスに一致して所有する必要があります
       find /tmp -perm /400 ---->               
       find /tmp -type f -perm /001 -ls ---->                      

   
実戦練習:
検索/varディレクトリの部下はrootで、グループはmailのすべてのファイルまたはディレクトリです.
find /var -user root -a -group mail -ls

/usrディレクトリの下でroot、bin、またはhadoopに属していないすべてのファイルまたはディレクトリを探します.
find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls

探して/etcディレクトリの次の1週間以内にその内容は修正したことがあって、同時に所有者がrootではありませんて、hadoopのファイルあるいはディレクトリではありません
find /etc -mtime -7 -not \( -user root -o -user hadoop \) -ls

現在のシステムにプライマリまたはグループが属しておらず、最近1週間以内にアクセスしたファイルまたはディレクトリを探します.
find / \( -nouser -o -nogroup \) -atime -7 -ls

/etcディレクトリの下で1 Mより大きくて、タイプが普通のファイルのすべてのファイルを探して、そして兆単位で表示します
find /etc -size +1M -type f -exec ls -lh {} \;

/etcディレクトリの下のすべてのユーザーが書く権限のないファイルを探します
find /etc -not -perm /222 -type f -ls

/etcディレクトリの下で少なくとも1種類のユーザーが実行権限のないファイルを探します
find /etc -not -perm -111 -type f -ls

探して/etc/init.d/ディレクトリでは、すべてのユーザに実行権限があり、他のユーザに書き込み権限があるファイル
find /etc/init.d -perm -113 -type f -ls

/tmpで60秒以内にアクセスされるファイルを読み取り秒で検索
watch -n1 "find /tmp -amin -60 -type f"

スクリプトで実現し、毎晩4時半に/data/log/nginxの下のこのフォーマット「nginx-test」を見つけます.×××.log」のテストログファイルは、このログが2 Mより大きい場合は削除し、削除後、削除したファイル名を/tmpディレクトリ下rmに記録する.ロゴファイル
30 4 * * * find /data/log/nginx -name 'nginx-test*.log' -size +2M -exec -fls /tmp/rm.log \;
echo ` ` > /tmp/rm.log