
findコマンドはファイルやディレクトリの検索をかけたいときに役立ちます。
そのほかにもパーミッションや最終更新の日数で検索をかけたり使い方は様々です。
本記事では、主なfindコマンドの使い方について例を交えて紹介します。
ファイル名で検索する
ファイル名の検索をかけたいときは以下の様になります。
$ find 検索先 -name ファイル名
例
testディレクトリにtest.txtを用意しました。
$ ls
test/
$ ls test
test.txt
検索式に「-name」を指定して拡張子が「.txt」のファイルで検索をかけると以下のような結果になります。
$ find test -name "*.txt"
test/test.txt
権限で検索する
権限で検索をかけたいときは以下の様になります。
$ find 検索先 -perm パーミッション
例
「test.txt」のパーミッションを644に変更します
$ chmod 644 test/test.txt
パーミッション644で検索すると644に変更した「test.txt」がヒットします
$ find test -perm 644
test/test.txt
種類で検索する
種類で検索をかけたいときは以下の様になります。
$ find 検索先 -type 種類
種類の箇所には
ファイルを探したいときは「f」
ディレクトリを探したいときは「d」
シンボリックリンクを探したいときは「l」を指定します。
例
$ find test -type f
test/test.txt
種類の箇所を「f」で検索をかけたのでファイルの「test.txt」がヒットします。
最終更新の日数で検索
最終更新の日数で検索をかけたいときは以下の様になります。
$ find 検索先 -mtime 日数
日数の箇所に0を指定すれば今日、-1であれば1日以内、-10であれば10日以内に更新のあったファイルが対象となります。
例
$ find test -type f -mtime 0
test/test.txt
ヒットした対象に対してコマンド実行
ヒットした対象に対してコマンド実行したいときは以下の様になります。
$ find 検索先 検索方法 -exec コマンド {} \;
例
以下のコマンドでは種類がファイルで今日更新があったものを削除しています。
$ find test -type f -mtime 0 -exec rm {} \;