findコマンド - ディレクトリの再帰的な検索
findコマンドを使うと、ディレクトリの再帰的な検索を行うことができます。
find ディレクトリ名
「/usr/local/lib」以下を検索するサンプルです。
find /usr/local/lib
出力結果のサンプルです。
/usr/local/lib /usr/local/lib/liblept.so.3.0.0 /usr/local/lib/liblept.so.3 /usr/local/lib/liblept.so /usr/local/lib/liblept.la /usr/local/lib/liblept.a /usr/local/lib/libtesseract.so.3.0.2 /usr/local/lib/libtesseract.so.3 /usr/local/lib/libtesseract.so /usr/local/lib/libtesseract.la /usr/local/lib/libtesseract.a /usr/local/lib/pkgconfig /usr/local/lib/pkgconfig/tesseract.pc
findコマンドの内容を絞り込む
grepコマンドと組み合わせると、findコマンドの内容を絞り込むことができます。
find /usr/local/lib | grep pkg
出力結果のサンプルです。
/usr/local/lib/pkgconfig /usr/local/lib/pkgconfig/tesseract.pc
隠しファイルを含まないカレントディレクトリを指定
現在ディレクトリにGitが使う「.git」などの隠しディレクトリがあって、これを含みたくない場合はワイルドカード「*」を使うのが便利です。カレントディレクトリの隠しファイル以外が対象になります。
find *
ファイルの種類を指定する
findコマンドでは「-type」オプションでディレクトリや通常ファイルなど、ファイルの種類を指定することができます。
通常ファイル
f指定で、ディレクトリやシンボリックリンクを含まない通常ファイルだけを取り出します。
find -type f ファイル名
ディレクトリファイル
d指定で、ディレクトリだけを取り出します。
find -type d ファイル名
タイプの一覧
タイプで指定でいるファイルの種類のの一覧です。
b | ブロック (バッファ) 特別 |
---|---|
c | 文字 (バッファなし) 特別 |
d | ディレクトリ |
p | 名前付きパイプ (FIFO) |
f | 通常ファイル |
l | シンボリックリンク;-L オプションまたは -follow の場合、これは決して当てはまりません シンボリック・リンクが壊れていない限り、オプションは有効です。 もしあなたなら -L が有効な場合にシンボリック リンクを検索する -xtype. |
s | ソケット |
実行ファイルだけに絞り込む
実行ファイルだけに絞り込むにはf指定に加えて「-executable」を指定します。
find -executable -type f ファイル名