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は条件に一致したファイルだけを見つけ出せるのが特徴です。
まとめ
今回の記事では、Linuxでファイルを検索する際に非常に便利なfind -sizeオプションについて、初心者にも分かりやすく解説してきました。findコマンドはLinux環境において欠かせない基本コマンドの一つですが、その中でも-sizeオプションはファイルサイズという視点から検索できる点が大きな特徴です。
ファイル名や更新日時だけでなく、「大きいファイル」「小さいファイル」「一定サイズ以上の不要なファイル」などを探せるようになると、ディスク容量の管理やトラブルシューティングが格段に楽になります。特にサーバー運用や開発環境では、ログファイルやバックアップファイルがいつの間にか肥大化していることが多く、find -sizeはそのような状況を把握するための強力な武器になります。
記事の中で解説したように、-sizeには完全一致、より大きい、より小さいという三つの指定方法があります。「+」や「-」を付けるだけで条件を柔軟に変えられる点は、Linuxコマンドらしいシンプルさと奥深さを感じられる部分です。
また、サイズ指定には「k」「M」「G」などの単位を付けることができ、直感的に条件を指定できるのも初心者にとって嬉しいポイントです。単位を省略した場合は512バイト単位になるという仕様も理解しておくことで、意図しない検索結果を防ぐことができます。
find -sizeは単体でも十分便利ですが、-type fでファイルだけに絞ったり、-nameと組み合わせて拡張子を限定したりすることで、より実践的な検索が可能になります。Linuxではコマンド同士を組み合わせて使う発想がとても重要であり、find -sizeはその考え方を学ぶうえでも良い題材と言えるでしょう。
以下は、一般ユーザーでよく使われるfind -sizeの実践的な例です。サイズの大きなファイルを見つけることで、ディスク整理や不要ファイルの洗い出しに役立ちます。
find . -type f -size +100M
./videos/movie.mp4
./backup/old_backup.tar.gz
このように実行すると、カレントディレクトリ以下から100MBを超えるファイルだけが一覧で表示されます。結果を確認したうえで、削除や移動を行えば、安全にディスク容量を確保できます。
duコマンドとの違いについても触れましたが、duは「サイズを確認する」ためのコマンドであり、find -sizeは「条件に合うファイルを探す」ためのコマンドです。目的に応じて使い分けることで、Linux操作の効率は大きく向上します。
find -sizeオプションは、最初は少し取っつきにくく感じるかもしれませんが、実際に使ってみると非常に実用的で、日常的に使いたくなる機能です。特に「ディスク容量が足りない」「どこに大きなファイルがあるのか分からない」といった場面では、真っ先に思い出したいコマンドの一つです。
Linux初心者の方は、まずは小さなサイズ指定から試し、徐々に条件を組み合わせていくことで理解が深まります。find -sizeを使いこなせるようになると、Linuxでのファイル管理が一段階レベルアップしたと実感できるはずです。
生徒「find -sizeって、ファイルの大きさで探せるのが便利ですね。容量が圧迫されているときに役立ちそうです。」
先生「そうですね。特に大きなログや動画ファイルを見つけるときに重宝します。」
生徒「+や-を付けるだけで条件を変えられるのも分かりやすかったです。」
先生「その理解はとても大事です。単位を付けて指定する習慣も身につけておきましょう。」
生徒「-nameや-typeと組み合わせると、かなり細かく探せますね。」
先生「その通りです。find -sizeを使いこなせるようになると、Linuxでのファイル管理がぐっと楽になりますよ。」