find -ctimeオプションの使い方を完全ガイド!状態変更日でファイルを検索する方法
生徒
「Linuxで、最近作られたファイルや設定を変えたファイルを探すにはどうすればいいですか?」
先生
「それならfindコマンドの-ctimeオプションが便利だよ。」
生徒
「ctimeって何ですか?編集した日時のことですか?」
先生
「少し違うんだ。ctimeは、ファイルの中身だけでなく、パーミッションや所有者などが変更されたときの日時を表すんだよ。詳しく説明していくね!」
1. ctimeとは?アクセス時間・変更時間との違い
ctimeとは、「change time(変更時刻)」の略で、ファイルの状態が変わったときの日時を意味します。
ここでいう「状態」とは、次のような変化を指します。
- ファイルの所有者やグループが変わった
- ファイルのパーミッション(権限)が変更された
- ファイルが削除されて、新しく別のファイルとして作られた
mtime(中身の更新時間)やatime(アクセス時間)とは用途が異なるので、それぞれの違いを理解しておきましょう。
2. 基本の構文と意味を覚えよう
findコマンドに-ctimeオプションを使うと、状態変更からの日数を条件にしてファイルを検索できます。
基本構文は次のとおりです。
find [検索ディレクトリ] -ctime [日数]
日数には、次のような指定ができます。
-n:n日以内に変更されたファイルn:ちょうどn日前に変更されたファイル+n:n日より前に変更されたファイル
3. 最近変更されたファイルを探す(3日以内)
例えば、「ホームディレクトリ内で直近3日以内に状態が変化したファイル」を探したい場合は以下のように実行します。
find ~ -ctime -3
/home/user/.bash_history
/home/user/Documents/config.txt
-3とすると、現在から過去3日以内(72時間以内)に所有者やパーミッションが変わったファイルが表示されます。
4. ちょうど5日前に変更されたファイルを探す
「ぴったり5日前に変更されたファイル」を検索したいときは、次のように指定します。
find ~ -ctime 5
/home/user/backup/settings.conf
このコマンドは、「5日前の24時間のあいだ」に変更されたファイルを探します。
5. 古いファイルを整理したいとき(30日以上前)
「もう使っていない古い設定ファイルや変更されていないファイル」を整理するには、+30のように指定します。
find ~ -ctime +30
/home/user/old_project/README.md
+30は、「30日より前に変更されたファイル」が対象になります。
6. -typeと組み合わせてファイルのみ検索する
findコマンドは、ディレクトリや特殊ファイルも含めて検索するため、通常のファイルだけを探したい場合は-type fを追加しましょう。
find ~ -type f -ctime -7
/home/user/Documents/report.docx
/home/user/Pictures/photo.jpg
7. ルートユーザーで設定ファイルの変更を探す
システム管理者として、重要な設定ファイルに最近変更があったか調べたいときにも-ctimeは役立ちます。
find /etc -type f -ctime -2
/etc/ssh/sshd_config
/etc/hosts
このように、/etcディレクトリ以下で、2日以内に変更された設定ファイルを表示できます。
8. -ctimeと-deleteで古いファイルを削除(慎重に!)
一定期間変更されていない一時ファイルを自動で削除したい場合、-deleteを使うことも可能です。
ただし、誤って重要なファイルを消してしまうリスクがあるため、-printで表示確認してから実行しましょう。
find /tmp -type f -ctime +10 -print -delete
/tmp/temp1.txt
/tmp/log_temp.log
9. mtimeやatimeとの違いをしっかり理解しよう
ctimeはファイルの「状態変更」を基準にしますが、mtimeやatimeは異なる目的で使います。
- ctime:所有者・パーミッションの変更など
- mtime:中身の変更(ファイルの内容を書き換えた)
- atime:ファイルを読み取った(アクセスした)
用途によって正しく使い分けることで、効率よくファイルの管理ができます。
10. statコマンドでctimeを確認する
実際にファイルのctimeを確認するには、statコマンドを使います。
stat test.txt
File: test.txt
Size: 2048 Blocks: 8 IO Block: 4096 regular file
Access: 2025-09-14 10:12:03
Modify: 2025-09-12 08:45:00
Change: 2025-09-15 18:20:30
この中の「Change」がctimeにあたる部分です。