LINUX COMPUTING

find : ファイルを検索する

構文

find [path] [検索条件] [アクション]

説明

ファイル名やファイルの種類、最終更新日のようなファイルの属性をもとにファイルの検索をおこなう。また、検索したファイルに対してコマンドを実行する。

検索条件

-name filename ファイル名がfilenameとマッチするファイルを検索する
-perm num 許可属性がnum(8進数)と一致するファイルを検索する
-type c ファイルのタイプがcであるファイルを検索する
-user user 所有者がuserであるファイルを検索する
-group group ファイルがgroupに属しているファイルを検索する
-size n nブロックサイズ(1ブロックは512バイト)であるファイルを検索する
-atime n n日前に最終アクセスがあったファイルを検索する
-mtime n n日前に最終更新されたファイルを検索する
-empty 空のファイルやディレクトリを検索する

アクション

-print 検索結果をフルパスで標準出力する
-ls 検索結果をパス名など、ls -gildsに相当する情報を表示する
-exec command \; 検索後、コマンドcommandを実行する。検索結果をcommandに引き渡すのに{}をもちいる。
例:find ~ -name '*bak" -exec rm {} \;
上記の例で-execにつづくrm {} \;が実行されるコマンド。最後の";"は-execのパラメタの終わりを示しており、その前の"\"は、";"がシェルに解釈されないようにエスケープする為のもの。
-ok command \; -execと同じ。ただし、コマンドの実行前にユーザに確認する

演算子

複数の条件式を用いる時に演算子で結ぶ
!expr exprが異なる場合、検索対象となる
expr1 -and expr2 expr1とexpr2がともに真のとき検索対象となる
expr1 -or expr2 expr1またはexpr2が真のとき検索対象となる

使用例

カレントディレクトリ以下にある*.v(verilogソースファイル)を検索
$ find . -name "*.v" -ls
311729    4 -rw-r--r--   1 wataru   wataru       2295  7月  1 16:17 ./top.v
311733    4 -rw-r--r--   1 wataru   wataru       1163  7月  1 16:17 ./decoder.v
311744    4 -rw-r--r--   1 wataru   wataru       3665  7月  1 16:18 ./tb.v

ホームディレクトリ以下にある*~(emacsのバックアップファイル)を全て削除
$ find ~/ -name "*~" -exec rm {} \;
目次
PR
最近のトピック
週間アクセスランキング
デル株式会社
Copyright (C) 2017 Linux Computing All rights reserved