このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

新Linuxコマンド演習38

新Linuxコマンド演習38 概要

 「新Linuxコマンド演習38」では、Linuxで最も強力な検索コマンドの一つである findコマンド を学びます。
 find は、ファイルシステムをリアルタイムで走査し、ファイル名・サイズ・更新日時・所有者など多様な条件でファイルを検索できるコマンドです。

この演習では、

  • 名前で検索
  • サイズで検索
  • 更新日時で検索
  • 所有者で検索

といった基本操作を通して、findコマンドの柔軟な使い方を習得します。

findコマンドの基本構文

項目内容
コマンド構文find 検索パス [検索条件] [実行動作]
find /usr/bin -name "c*"

表の説明
findコマンドはまず検索するディレクトリのパスを指定し、
その後に 条件オプション(例:-name、-size、-mtime、-user など)を指定します。
検索結果に対して、-exec オプションを使えばコマンドを実行することも可能です。

演習問題+模範解答例

演習01:ファイル名を指定して検索する

問題
 root ユーザーに切り替えて /usr/bin ディレクトリ以下で、ファイル名が「c」で始まるファイルを検索してください。

模範解答例

[suzuki@AlmaLinux ~]$ su -
パスワード:
[root@AlmaLinux ~]# find /usr/bin -name "c*"
/usr/bin/cpio
/usr/bin/cd-drive
/usr/bin/cd-read
/usr/bin/chacl
/usr/bin/cd
/usr/bin/command
/usr/bin/cdda-player
/usr/bin/catchsegv
(省略)

解説

  • -name はファイル名のパターンを指定するオプションです。
  • * は任意の文字列にマッチします。
  • このコマンドは、/usr/bin 以下で「c」で始まる全てのファイルを検索します。

演習02:ファイルサイズを指定して検索する

問題
/var/log ディレクトリ以下で、サイズが1MB以上のファイルを検索してください。

模範解答例

[root@AlmaLinux ~]# find /var/log -size +1M
/var/log/audit/audit.log
/var/log/anaconda/journal.log
/var/log/messages-20251102

解説

  • -size オプションでは、検索するファイルサイズを指定します。
  • + は「より大きい」、- は「より小さい」を意味します。
  • 単位は c(バイト)、k(KB)、M(MB)などが使えます。
    例:-size +1M は「1MBより大きいファイル」。

演習03:最終修正日を指定して検索する

問題
/tmp ディレクトリ以下で、昨日変更されたファイルを検索してください。

模範解答例

[root@AlmaLinux ~]# find /tmp -mtime -1
/tmp
/tmp/.X11-unix
/tmp/.X11-unix/X1024
/tmp/.X11-unix/X1025
(省略)

解説

  • -mtime はファイルの最終変更日を基準に検索します。
  • -1 は「1日以内に更新された」ことを意味します。
  • 例えば -mtime 0 は「今日」、-mtime +7 は「7日より前」となります。

演習04:指定した所有者のファイルを検索する

問題
/etc ディレクトリ以下で、所有者が root のファイルを検索してください。

模範解答例

[root@AlmaLinux ~]# find /etc -user root
/etc
/etc/mtab
/etc/fstab
/etc/crypttab
/etc/lvm
/etc/lvm/devices
(省略)

解説

  • -user オプションは、指定したユーザーが所有するファイルを検索します。
  • 例:-user root は root が所有するファイルを対象に検索します。
  • 所有者を確認したい場合は ls -l コマンドでファイルの詳細情報を表示できます。

補足:findとlocateの違い

項目findlocate
検索方法ファイルシステムをリアルタイムで探索あらかじめ作成されたデータベースを検索
検索速度遅いが常に最新情報を取得非常に速いがデータ更新が必要
主な用途最新ファイルを正確に探す。既存ファイルを素早く探す。

表の説明
find はリアルタイム検索のため、ディスクI/Oが多くなるものの確実に最新の情報が得られます。
一方で locate は、更新頻度の低いシステム全体の中から高速に検索する場合に便利です。
状況によって使い分けることが重要です。

まとめ

新Linuxコマンド演習38」では、find コマンドの基本的な使い方を学びました。

  • ファイル名・サイズ・日付・所有者による検索ができる。
  • locateとの違いは「リアルタイム検索かデータベース検索か」
  • システム管理では、findはトラブル調査・ファイル整理に欠かせないツール