find -sizeオプションの使い方を完全ガイド!初心者でもわかるファイルサイズでの検索方法
生徒
「Linuxで、特定のサイズのファイルだけを探す方法ってありますか?」
先生
「はい、findコマンドの-sizeオプションを使えば、ファイルサイズを指定して検索できますよ。」
生徒
「それって、たとえば100MB以上の動画ファイルを探す…みたいなこともできるんですか?」
先生
「もちろんできます!それでは、初心者にもわかるように、-sizeオプションの使い方を詳しく説明しましょう。」
1. findコマンドとは?
findコマンドは、Linuxでファイルやディレクトリを検索するためのとても便利なコマンドです。パソコンの中の「探し物」を見つける道具だと考えてください。
たとえば、特定の名前のファイル、特定の場所にあるファイル、更新日時が新しいファイルなどを探すことができます。
2. -sizeオプションとは?
-sizeオプションを使うと、「このサイズのファイルを探して!」という条件を指定できます。ここでいうサイズとは、ファイルの「重さ」や「大きさ」のことです。たとえば、1MB(メガバイト)や100kB(キロバイト)といった単位で指定します。
オプションを使う基本構文は次のとおりです。
find [検索するディレクトリ] -size [サイズ]
3. 実例で学ぶ-sizeオプションの使い方
それでは、よく使われる例を交えて解説していきます。
3-1. 1MBちょうどのファイルを検索
find . -size 1M
カレントディレクトリ(今いる場所)から、ちょうど1MBのファイルだけを探します。
3-2. 1MBより大きいファイルを検索
find . -size +1M
「+」は「より大きい」という意味です。つまり、1MBを超えるファイルが対象になります。
3-3. 500kB以下のファイルを検索
find . -size -500k
「-」は「より小さい」という意味です。このコマンドでは、500キロバイト未満のファイルを探します。
3-4. サイズ単位の種類
- c:バイト(byte)
- k:キロバイト(KB)
- M:メガバイト(MB)
- G:ギガバイト(GB)
たとえば、100cは100バイト、5Gは5ギガバイトという意味になります。
4. よくある組み合わせ例
4-1. ファイルサイズが1MBより大きく、10MB未満のファイルを探す
find . -size +1M -a -size -10M
-aはAND条件を意味します。このコマンドでは、1MB超かつ10MB未満のファイルを検索します。
4-2. 特定の拡張子とサイズ条件を組み合わせる
find . -name "*.mp4" -size +100M
.mp4という拡張子(動画ファイル)で、100MBを超える大きな動画ファイルだけを探します。
5. 実行結果の表示例
以下は実際にコマンドを実行したときの出力例です。
find . -size +1M
./bigfile.zip
./videos/sample.mp4
./backup/db_dump.sql
このように、条件に一致したファイルのパスが表示されます。
6. よくある疑問と注意点
6-1. ディレクトリは対象になる?
はい、findコマンドはディレクトリも検索対象になりますが、-sizeは「ファイルサイズ」に注目するため、通常はファイルだけに絞ることが多いです。ファイルだけに限定するには-type fを使います。
find . -type f -size +1M
6-2. サイズの計算単位は「1ブロック512バイト」?
補足情報:-sizeで単位を省略すると、512バイトを1単位として判断されます。つまり、-size 2は1024バイト(1KB)になります。分かりやすく指定するために、kやMなどの単位をつけるのがおすすめです。
7. 他の類似コマンドとの違い
duコマンドは、ファイルやディレクトリのサイズを表示するためのコマンドですが、find -sizeは検索に特化しています。
7-1. duコマンドの例
du -sh *
10M file1.txt
200M video.mp4
このようにサイズを表示するだけのduに対して、findは条件に一致したファイルだけを見つけ出せるのが特徴です。