find

findは、指定した条件に一致するファイルやディレクトリを検索するLinux/Unixコマンドである。

構文

find dir options

引数

dir

検索する基点となるディレクトリを指定する。指定したディレクトリの中にサブディレクトリがある場合、再帰的に検索される。

オプション

optionsには検索条を指定できる。また、検索条件に合致するファイルやディレクトリに対して行う処理も指定できる。

-exec command
commandで指定したコマンドを実行して、 実行したコマンドが終了ステータスとして0を返した場合に真となる。コマンドの終わりには、 コマンドの終了を表すセミコロン(;)を付ける必要がある。コマンド引数{}は、現在のパス名に置き換えられる。

ファイルやディレクトリの情報をフルパスで出力する。

$ find /home/tsuka -exec ls -ed {} \;

再帰的にディレクトリのパーミッションを変更する。

$ find /home/tsuka -type d -exec chmod 775 {} \;

再帰的にファイルのパーミッションを変更する。

$ find /home/tsuka -type f -exec chmod 664 {} \;
-n pattern
ファイル名のパターンを指定する。
$ find . -name *.jpg
-print

検索条件: なし。

処理: 検索条件に合致するファイルやディレクトリのパスを表示する。

-t type
ファイル又はディレクトリの種類を指定する。

種類
type 説明
b ブロック型デバイス
c キャラクタ型デバイス
d ディレクトリ
f 通常ファイル
p 名前付きパイプ
s ソケット
$ find . -type d
-user uname
ユーザー名又はユーザーIDを指定する。
$ find . -user tsuka

関連記事