find -typeオプションの使い方を完全ガイド!初心者でもわかるファイルタイプでの絞り込み
生徒
「Linuxでファイルだけを検索したいんですけど、どうすればいいですか?」
先生
「そんな時はfindコマンドに-typeオプションをつけると、ファイルの種類を指定して検索できますよ。」
生徒
「ファイルの種類って何ですか?全部ファイルじゃないんですか?」
先生
「いい質問ですね。Linuxでは、普通のファイルだけじゃなくて、ディレクトリやシンボリックリンクなど、いろんなタイプがあるんです。ひとつずつ見ていきましょう!」
1. findコマンドとは?
findコマンドは、Linuxでファイルやディレクトリを探すためのコマンドです。パソコン内のどこかにあるファイルを検索したいときに使われます。
フォルダ(ディレクトリ)を指定して検索を開始し、-nameや-sizeなどのオプションで検索条件を加えることができます。
2. -typeオプションとは?
-typeオプションは、検索する「ファイルの種類(タイプ)」を指定するためのものです。Linuxでは、すべてのものが「ファイル」として扱われますが、実際には種類があります。
主なタイプ:
f:通常のファイル(テキストファイルや画像ファイルなど)d:ディレクトリ(フォルダ)l:シンボリックリンク(ショートカットのようなもの)c:キャラクタデバイス(キーボードなど)b:ブロックデバイス(ハードディスクなど)p:パイプ(プロセス間通信)s:ソケット(通信に使う特別なファイル)
初心者のうちは、f(通常ファイル)とd(ディレクトリ)を覚えておけば十分です。
3. 通常ファイル(-type f)の検索例
指定したフォルダ内から、通常ファイルだけを探すには、次のように書きます。
find . -type f
./file.txt
./notes.txt
./images/logo.png
.は「現在のディレクトリ」という意味で、そこから下の階層をすべて検索します。
4. ディレクトリ(-type d)の検索例
今度はフォルダ(ディレクトリ)だけを探してみましょう。
find . -type d
.
./images
./images/icons
./docs
このように、ファイルではなく、フォルダ構造を一覧で表示できます。
5. シンボリックリンク(-type l)の検索例
ショートカットのような役割をするシンボリックリンクも検索できます。
find . -type l
./shortcut_to_docs
このように、-type lでシンボリックリンクだけを見つけられます。
6. -typeと他のオプションの組み合わせ
-typeは他の条件と組み合わせて、よりピンポイントな検索が可能になります。
例:.txtファイルだけを検索(通常ファイルのみ)
find . -type f -name "*.txt"
./notes.txt
./logs/error.txt
例:名前に「backup」が含まれるディレクトリだけを検索
find . -type d -name "*backup*"
./backup
./old_backup_2022
7. 便利な使い方:削除やパーミッション変更と併用
見つけたファイルに対して、すぐに削除や権限変更を行いたいときにも-typeは役立ちます。
例:空の通常ファイルを削除
find . -type f -empty -delete
例:すべてのディレクトリに実行権限をつける
find . -type d -exec chmod +x {} \;
{}は見つかったファイル名を表していて、\;でコマンドの終了を意味します。
8. よくある間違いと注意点
- スペースを忘れる:
-typefのように書くとエラーになります。正しくは-type f - fとdを混同する:fは通常ファイル、dはディレクトリ。区別しましょう。
- パーミッションエラー:システムフォルダを検索するときはアクセス権限に注意が必要です。
9. 他のLinuxコマンドとの違い
lsコマンドでもファイル一覧を出せますが、再帰的に探すことができません。また、ファイルタイプでの絞り込みもできません。
find -typeを使えば、深い階層にある特定の種類だけを素早く検索できるため、大量のファイルを扱うときにとても便利です。