LinuxのFindコマンドの詳細
7130 ワード
Linuxシステム「ファイル検索」
Linuxシステムのファイルの中でよく使う属性は以下の内容です:名前、大きさ、権限、所有者、グループに属して、修正時間、アクセス時間など、巨大なシステムの中で、promptの中でファイルを検索する必要があって、その検索ツールを借りて実現する必要があって、これによって同じあるいは指定の属性のファイルを検索することができて、CentosとEHLE類のシステムは検索ツールを実現します:Locate、findツールがあります.
locateツール
`locate`
synopsis: locate [option]…PATTERN….
options:
-b --basename:
-c --count:
-r --regexp:
locateの動作特性:
利点####
`locate`
synopsis: locate [option]…PATTERN….
options:
-b --basename:
-c --count:
-r --regexp:
欠点####
findツール
一、仕事の特徴
利点####
欠点####
findコマンドの使用方法
`find` - search for files in a directory hierarhy
sysnopsis: find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
クエリー条件
クエリー条件は、オプションとテスト条件で構成されます.
【試験条件】
一、ファイル名で検索
-name pattern
:ファイル名で検索-iname pattern
:ファイル名の大文字と小文字を区別せず、globスタイルのみをサポートする検索方法:*,?[],[^] -regex pattern
:正規表現に基づいてファイルを検索し、ファイル名二、ファイル従属関係で検索
-user USERNAME
:ユーザー名で-group GROUPNAME
:グループ名で検索-uid UID
:UID番号で-gid GID
:GIDで-nouser
:所有者のないファイルを検索-nogroup
:グループに属していないファイルを検索-type TYPE
:ファイルタイプで検索f
:一般ファイルd
:ディレクトリファイルb
:ブロックデバイスファイルc
:文字デバイスファイルl
:接続ファイルs
:ソケットファイルp
:パイプファイル四、ファイルサイズによって検索
-size [+|-]SIZE
:K,M,Gを含むファイルサイズでクエリー-size 5M
:サイズ5 Mのファイルを正確に検索し、サイズの上に少しずれがある-size -5M
:クエリーサイズが5 M未満のファイル-size +5M
:クエリーサイズが5 Mより大きいファイル五、時間によって検索する
-atime [+|-]TIME
:アクセス時間(日)で-mtime [+|-]TIME
:データ修正時間(日)で-ctime [+|-]TIME
:メタデータ修正時間(日)で-amin [+|-]TIME
:アクセス時間(分)で-mmin [+|-]TIME
:データ修正時間(分)で-cmin [+|-]TIME
:メタデータ修正時間(分)で-newer FILE
:FILEファイルを条件に、それより新しいファイルを判断する7
:正確な時間、7はちょうど7(日|分)の開始位置+7
:7(日|分)以前の-7
:7(日|分)以内の六、権限による検索
-perm MODE
:正確な権限検索find . -perm 644
-perm /MODE
:任意のクラスのユーザ(u,g,o)のいずれか(r,w,x)が条件を満たすか、または関係として理解されるかfind . -perm /222
:少なくとも1つのクラスのユーザーが書き込み権限を持っていることを検索find . -perm /666
:少なくとも1つのクラスのユーザーが読み書き権限を持っていることを検索find . -perm /001
:他のユーザを検索する実行権限-perm -MODE
:各クラスのユーザ(u,g,o)の権限のうちの各ビット(r,w,x)は、条件を満たしながら満たされ、関係と理解されるfind . -perm -222
:3種類のユーザーを検索するには、書き込み権限find . -not -perm -222
:少なくとも1つのユーザが書き込み権限を持たない七、組合せ条件テスト
: -a
-a
を追加してもよいし、キャンセルしてもよい.例:find . -type f -a -user mariadb
、2つの条件は同時に
: -o
-o
のパラメータを加えることができ、例:find . -type f -o -nouser
、2つの条件は1つだけを満たす
:-not
または!
で表されるfind . -not -type f
、一般ファイルfind . ! -type f
、同八、処理動作
-print
:デフォルトは印刷であり、追加する必要はなく、画面-ls
:ls長ファイル形式で-delete
:検索されたファイルを削除-fls /PATH/TO/SOMEFILE
:問い合わせたファイルをls詳細形式でSOMEFILEファイルに-ok COMMAND {} \;
:検出されたファイルはCOMMANDコマンドに渡され、ステップ毎にユーザに確認操作-exec COMMAND {} \;
:見つかったファイルはCOMMANDコマンドに渡され、直接修正が完了し、ユーザーに注意:findは検索したファイルパスを一度に後のコマンドに渡しますが、長すぎるパラメータを受け入れられないコマンドが多く、コマンドの実行に失敗しました.このエラーを回避するには、次の方法を使用します.
find /etc -type f | xargs -i COMMAND
:-iパラメータはfindの結果からxargsコマンドに渡された後、-iによって結果置換子が指定されます find /etc -type f | xargs -i cp {} /tmp : -i {}
オプション
一、検索ディレクトリ範囲の指定
-maxdepth NUM
:最大検索ディレクトリレベルをNUMレベル-mindepth NUM
:最小検索ディレクトリNUMレベル二、空のファイルを検索する
-empty
:クエリの内容が空のファイルfind ./ -empty
:現在のディレクトリの下にあるすべての空のファイルを検索三、シンボル接続を排除する
-follow
:シンボル接続を除外Findはxagrsのコマンドと結合する
Usage:
find /etc -type f | xargs -i cp {} /tmp/
-i : xargs , -i {}
==============
例
find /tmp -not -user root -a -name *fstab*
find /tmp -not -name *fstab*
find /tmp -not -user root -a -not -name *fstab*
find /tmp -not \(-user root -o -name *fstab*\)
find /etc -atime +7 -ls
find /etc -mtime -1 -ls
find /var/ -user root -group mail
find ./ -not -user bin -not -user user3 -not -user user4
find ./ -not \( -user bin -o -user user3 -o -user user4 \)
find /etc -mtime -7 -not -user root -not -user hadoop
find / -atime -7 -nouser -o -nogroup
find /etc/ -size +1M -type f -ls
find /etc/ -type f -not -perm /222 -ls
find /etc/ -not -perm -111 -ls
find /etc/ -perm -111 -perm -002
find /etc/ -perm -113
モーガンの法則:
** !A -a !B = !(A -o B)**
** !A -o !B = !(A -a B)**