English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Linux find コマンドは指定されたディレクトリ内でファイルを検索するために使用されます。パラメータの前にある文字列は検索したいディレクトリ名とみなされます。このコマンドを使用する際にパラメータを設定しない場合、find コマンドは現在のディレクトリ内のサブディレクトリとファイルを検索し、検出したすべてのサブディレクトリとファイルを表示します。
find path -option [ -print ] [ -exec -ok command ] {} \;
パラメータ説明 :
find は以下のルールに従って path と expression を判断し、コマンドライン上の最初の - ( ) , ! 以前の部分が path、以降が expression。path が空文字列の場合は現在のパスを使用し、expression が空文字列の場合はデフォルトを使用します。 -print がデフォルトの expression。
expression で使用できるオプションは20〜30個ほどありますが、ここでは最も常用の一部を紹介します。
-mount, -xdev : 指定されたディレクトリと同じファイルシステム内のファイルのみをチェックし、他のファイルシステムのファイルを除外する
-amin n : n 分以内に読まれた
-anewer file : ファイル file より遅く読まれたファイル
-atime n : n 日以内に読まれたファイル
-cmin n : n 分以内に変更された
-cnewer file : ファイル file より新しいファイル
-ctime n : n 日以内に変更されたファイル
-empty : 空のファイル-gid n or -group name : gid が n または group 名が name
-ipath p, -path p : 名前が p に一致するパスのファイル。ipath は大文字小文字を区別しない。
-name name, -iname name : 名前が name に一致するファイル。iname は大文字小文字を区別しない。
-size n :ファイルサイズが n 単位、b は 512 バイトのブロック、c は文字数を示し、k はキロバイトを示し、w は2バイトです。
-type c :ファイルタイプが c のファイル。
d: ディレクトリ
c: キャラクタデバイスファイル
b: ブロックデバイスファイル
p: 名前付きストリーム
f: 通常ファイル
l: シンボリックリンク
s: ソケット
-pid n :プロセス ID が n のファイル
演算式を ( ) で区切って、以下の演算を使用できます。
exp1 -expr と和を取る2
! expr
-expr に負の意味を持たせる
exp1 -または exp2
exp1, exp2
現在のディレクトリおよびそのサブディレクトリ内のすべてのファイル拡張子が .c のファイルをリストに挙げます:
# find . -name "*.c"
現在のディレクトリおよびそのサブディレクトリ内のすべての通常ファイルをリストに挙げます
# find . -type f
現在のディレクトリおよびそのサブディレクトリ内のすべての最近 20 日以内に更新されたファイルをリストに挙げます:
# find . -ctime -20
検索 /var/log ディレクトリ内の変更時間が 7 日以前の通常ファイルを検索し、削除する前に確認します:
# find /var/log -type f -mtime +7 -ok rm {} \;
現在のディレクトリ内のファイルの所有者が読み書き権限を持ち、ファイルのグループのユーザーと他のユーザーが読み権限を持つファイルを検索します:
# find . -type f -perm 644 -exec ls -l {} \;
システム中のすべてのファイル長が 0 の通常ファイルを検索し、その完全なパスをリストに挙げます:
# find / -type f -size 0 -exec ls -l {} \;