linuxコマンドのfind
3096 ワード
find構文
findホームディレクトリ式(オプション、条件テスト、アクション)
find path -option [condition ] [ -print -exec -ok command ] { }\;
path:findが検索を開始するディレクトリを指定します.デフォルトでは、findは指定したディレクトリのすべてのサブディレクトリとファイルを再帰的に検索します.
-option:オプション
condition:条件テスト
-print:検索したファイルを標準出力に出力(アクション)
-exec command {}\;検索したファイルをcommand操作、{}および;間にスペースがある(アクション)
-okと-execは同じですが、操作前にユーザーに問い合わせます.
オプション:
-d、-depth:まずディレクトリの下の内容を探して、それからディレクトリ自体です
-maxdepth:指定したディレクトリから最大nレイヤを探します.
-mindepth:指定したディレクトリの下から少なくともnレイヤを探します.
-prune:ある条件を満たすディレクトリへのアクセスを防止
-xdev、-mount:他のファイルシステムにアクセスしないでください.
条件テスト:
-nameまたは-iname:ファイル名で検索します.-inameは大文字と小文字を区別しません.
-user:ファイル所有者別検索
-nouser:無効なプライマリファイルの検索
-group:ファイルグループ別に検索
-nogroup:無効なグループファイルの検索
-uid:uid番号のユーザーに属するファイルを検索
-type:ファイルタイプ別検索
ファイルタイプ:b(ブロックデバイス)c(文字デバイス)d(ディレクトリ)f(一般)l(リンク)s(ソケット)p(パイプ)
-atime n,-ctime n,-mtime n:単位は日(aアクセス時間,c状態変化時間,m修正時間)(nは数字-amin n,-cmin n,-mmin n:単位は分(aアクセス時間,c状態変化時間,m修正時間)(nは数字-anewer file,-cnewer file,-newer file:ファイルfileより時間が新しい
-size:ファイルのサイズ単位で検索
ファイルサイズの単位:
b:512 bytes単位のブロック(デフォルト)
c:バイト
w:2バイト文字数
k : 1024 bytes
M : 1024 * 1024 bytes
G : 1024 * 1024 * 1024 bytes
-perm:権限に従って検索
パーミッションマッチングルール(220の例)
220:ファイル権限は220でなければなりません
-220:最小ファイル権限220
/200:u,g,oの3つの権限のいずれかに一致する(ただし220に一致しない)
-readable:読み取り可能
-writable:書き込み可能
-executable:実行可能
アクション:-print:検索結果を印刷
-ls:ls-lに相当
-exec command {}\;commandコマンドの実行
-ok command {}\;同-execですが、インタラクティブモードはオンです
-delete:見つかったファイルを削除
findホームディレクトリ式(オプション、条件テスト、アクション)
find path -option [condition ] [ -print -exec -ok command ] { }\;
path:findが検索を開始するディレクトリを指定します.デフォルトでは、findは指定したディレクトリのすべてのサブディレクトリとファイルを再帰的に検索します.
-option:オプション
condition:条件テスト
-print:検索したファイルを標準出力に出力(アクション)
-exec command {}\;検索したファイルをcommand操作、{}および;間にスペースがある(アクション)
-okと-execは同じですが、操作前にユーザーに問い合わせます.
オプション:
-d、-depth:まずディレクトリの下の内容を探して、それからディレクトリ自体です
-maxdepth
-mindepth
-prune:ある条件を満たすディレクトリへのアクセスを防止
-xdev、-mount:他のファイルシステムにアクセスしないでください.
条件テスト:
-nameまたは-iname:ファイル名で検索します.-inameは大文字と小文字を区別しません.
find . -name ‘*sql’ # sql
find /tmp /opt ./ -name '*sock' # /tmp 、/opt 、 sock
-user:ファイル所有者別検索
-nouser:無効なプライマリファイルの検索
-group:ファイルグループ別に検索
-nogroup:無効なグループファイルの検索
-uid:uid番号のユーザーに属するファイルを検索
find /tmp -user 'gino' # /tmp gino
linux ( )
find . -nouser -nogroup -delete # ,
-type:ファイルタイプ別検索
ファイルタイプ:b(ブロックデバイス)c(文字デバイス)d(ディレクトリ)f(一般)l(リンク)s(ソケット)p(パイプ)
find /tmp -type s # /tmp socket
-atime n,-ctime n,-mtime n:単位は日(aアクセス時間,c状態変化時間,m修正時間)(nは数字
find . -mmin -50 # 50
find . -ctime +2 # 48 (2 )
find . -newer samp.sh # samp.sh
find . -newer samp.sh !sbmp.sh # samp.sh , sbmp.sh
-size:ファイルのサイズ単位で検索
ファイルサイズの単位:
b:512 bytes単位のブロック(デフォルト)
c:バイト
w:2バイト文字数
k : 1024 bytes
M : 1024 * 1024 bytes
G : 1024 * 1024 * 1024 bytes
find . -size +10240k # 10240k
find . -size -2048 # 2048 blocks(2048 * 512 bytes)
find . -size 0 #
find . -empty #
-perm:権限に従って検索
パーミッションマッチングルール(220の例)
220:ファイル権限は220でなければなりません
-220:最小ファイル権限220
/200:u,g,oの3つの権限のいずれかに一致する(ただし220に一致しない)
# ,
find . -perm /220
find . -perm /u+w,g+w
find . -perm /u=w,g=w
-readable:読み取り可能
-writable:書き込み可能
-executable:実行可能
find . -readable #
アクション:-print:検索結果を印刷
-ls:ls-lに相当
-exec command {}\;commandコマンドの実行
-ok command {}\;同-execですが、インタラクティブモードはオンです
-delete:見つかったファイルを削除
find . -name '*sql' -exec cp {} /tmp \; # sql , /tmp
find . -nouser -nogroup -ok rm -rf {} \; # , ( )
find . -name '*sql' -ls # sql , ls -l