カテゴリ: Linuxコマンド集 更新日: 2026/03/29

find -ctimeオプションの使い方を完全ガイド!状態変更日でファイルを検索する方法

find -ctimeオプション|状態変更日を基準に検索する
find -ctimeオプション|状態変更日を基準に検索する

先生と生徒の会話形式で理解しよう

生徒

「Linuxで、最近作られたファイルや設定を変えたファイルを探すにはどうすればいいですか?」

先生

「それならfindコマンドの-ctimeオプションが便利だよ。」

生徒

ctimeって何ですか?編集した日時のことですか?」

先生

「少し違うんだ。ctimeは、ファイルの中身だけでなく、パーミッションや所有者などが変更されたときの日時を表すんだよ。詳しく説明していくね!」

1. ctimeとは?アクセス時間・変更時間との違い

1. ctimeとは?アクセス時間・変更時間との違い
1. ctimeとは?アクセス時間・変更時間との違い

ctimeとは、「change time(変更時刻)」の略で、ファイルの状態が変わったときの日時を意味します。

ここでいう「状態」とは、次のような変化を指します。

  • ファイルの所有者グループが変わった
  • ファイルのパーミッション(権限)が変更された
  • ファイルが削除されて、新しく別のファイルとして作られた

mtime(中身の更新時間)やatime(アクセス時間)とは用途が異なるので、それぞれの違いを理解しておきましょう。

2. 基本の構文と意味を覚えよう

2. 基本の構文と意味を覚えよう
2. 基本の構文と意味を覚えよう

findコマンドに-ctimeオプションを使うと、状態変更からの日数を条件にしてファイルを検索できます。

基本構文は次のとおりです。


find [検索ディレクトリ] -ctime [日数]

日数には、次のような指定ができます。

  • -n:n日以内に変更されたファイル
  • n:ちょうどn日前に変更されたファイル
  • +n:n日より前に変更されたファイル

3. 最近変更されたファイルを探す(3日以内)

3. 最近変更されたファイルを探す(3日以内)
3. 最近変更されたファイルを探す(3日以内)

例えば、「ホームディレクトリ内で直近3日以内に状態が変化したファイル」を探したい場合は以下のように実行します。


find ~ -ctime -3
/home/user/.bash_history
/home/user/Documents/config.txt

-3とすると、現在から過去3日以内(72時間以内)に所有者やパーミッションが変わったファイルが表示されます。

4. ちょうど5日前に変更されたファイルを探す

4. ちょうど5日前に変更されたファイルを探す
4. ちょうど5日前に変更されたファイルを探す

「ぴったり5日前に変更されたファイル」を検索したいときは、次のように指定します。


find ~ -ctime 5
/home/user/backup/settings.conf

このコマンドは、「5日前の24時間のあいだ」に変更されたファイルを探します。

5. 古いファイルを整理したいとき(30日以上前)

5. 古いファイルを整理したいとき(30日以上前)
5. 古いファイルを整理したいとき(30日以上前)

「もう使っていない古い設定ファイルや変更されていないファイル」を整理するには、+30のように指定します。


find ~ -ctime +30
/home/user/old_project/README.md

+30は、「30日より前に変更されたファイル」が対象になります。

6. -typeと組み合わせてファイルのみ検索する

6. -typeと組み合わせてファイルのみ検索する
6. -typeと組み合わせてファイルのみ検索する

findコマンドは、ディレクトリや特殊ファイルも含めて検索するため、通常のファイルだけを探したい場合は-type fを追加しましょう。


find ~ -type f -ctime -7
/home/user/Documents/report.docx
/home/user/Pictures/photo.jpg

7. ルートユーザーで設定ファイルの変更を探す

7. ルートユーザーで設定ファイルの変更を探す
7. ルートユーザーで設定ファイルの変更を探す

システム管理者として、重要な設定ファイルに最近変更があったか調べたいときにも-ctimeは役立ちます。


find /etc -type f -ctime -2
/etc/ssh/sshd_config
/etc/hosts

このように、/etcディレクトリ以下で、2日以内に変更された設定ファイルを表示できます。

8. -ctimeと-deleteで古いファイルを削除(慎重に!)

8. -ctimeと-deleteで古いファイルを削除(慎重に!)
8. -ctimeと-deleteで古いファイルを削除(慎重に!)

一定期間変更されていない一時ファイルを自動で削除したい場合、-deleteを使うことも可能です。

ただし、誤って重要なファイルを消してしまうリスクがあるため、-printで表示確認してから実行しましょう。


find /tmp -type f -ctime +10 -print -delete
/tmp/temp1.txt
/tmp/log_temp.log

9. mtimeやatimeとの違いをしっかり理解しよう

9. mtimeやatimeとの違いをしっかり理解しよう
9. mtimeやatimeとの違いをしっかり理解しよう

ctimeはファイルの「状態変更」を基準にしますが、mtimeatimeは異なる目的で使います。

  • ctime:所有者・パーミッションの変更など
  • mtime:中身の変更(ファイルの内容を書き換えた)
  • atime:ファイルを読み取った(アクセスした)

用途によって正しく使い分けることで、効率よくファイルの管理ができます。

10. statコマンドでctimeを確認する

10. statコマンドでctimeを確認する
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にあたる部分です。

まとめ

まとめ
まとめ

findコマンドのctimeオプションは、ファイルの状態変更日を基準に検索できる非常に実用的な機能です。日々の運用において、ファイルの内容変更だけでなく、所有者変更やパーミッション変更といった管理上の重要な変化を把握することは、システム管理やトラブル対応において欠かせません。ctimeはそのような変更履歴を追跡するための重要な指標であり、mtimeやatimeと正しく使い分けることで、より精度の高いファイル管理が実現できます。 特に、Linux環境でのログ管理や設定ファイルの監査では、いつ誰がどのような変更を行ったのかを確認する場面が多くあります。その際にctimeを活用することで、単なる更新日時ではなく、システムに影響を与える変更を見逃さずに確認することが可能になります。例えば、セキュリティ対策として不正な権限変更がないか確認する場合や、運用中の設定変更の影響範囲を調査する場合に役立ちます。 また、古いファイルの整理にもctimeは非常に有効です。一定期間状態変更が行われていないファイルは、不要な可能性が高く、ディスク容量の最適化の観点からも削除対象として検討できます。ただし、削除操作を伴う場合は慎重な確認が必要であり、必ず事前に一覧表示を行い、対象ファイルを確認することが重要です。 さらに、typeオプションと組み合わせることで、通常ファイルのみを対象にした検索が可能となり、検索精度を高めることができます。ディレクトリや特殊ファイルを除外することで、必要な情報だけを効率よく取得できます。 実務では、findコマンドをシェルスクリプトと組み合わせることで、自動化された監視や定期的なクリーンアップ処理を構築することも一般的です。例えば、一定期間変更のない一時ファイルを自動削除する仕組みを作ることで、運用負荷の軽減にもつながります。 このように、ctimeオプションは単なる検索機能ではなく、Linuxにおけるファイル管理やシステム運用の質を高めるための重要な要素です。基本的な使い方を理解し、実際の運用に応じて柔軟に活用することで、より効率的で安全な環境を構築できるようになります。

実践的なサンプルコマンド


find ~/projects -type f -ctime -7
/home/user/projects/app/config.yml
/home/user/projects/app/log.txt

find ~/backup -type f -ctime +60
/home/user/backup/old_data.tar.gz

find /var/log -type f -ctime -1
/var/log/syslog
/var/log/auth.log

運用で役立つポイント整理

  • 状態変更を基準にした検索ができるため管理用途に最適
  • パーミッション変更や所有者変更の検知に活用できる
  • 古いファイルの整理や自動削除に応用できる
  • typeオプションと組み合わせることで精度向上
  • statコマンドで変更時刻を確認できる
先生と生徒の振り返り会話

生徒

ctimeって最初は分かりにくかったですが、ファイルの状態が変わったタイミングを見ているんですね。

先生

その通りだよ。内容の変更だけでなく、権限や所有者の変更も含まれるのがポイントだね。

生徒

ログファイルや設定ファイルの管理に使えそうですね。特に変更があったファイルを調べるときに便利そうです。

先生

いい視点だね。運用現場では、どのファイルがいつ変更されたかを把握することが重要だから、ctimeはとても役立つよ。

生徒

古いファイルを削除する用途にも使えるのは意外でした。でも削除は慎重にやらないと危険ですね。

先生

その通り。必ず事前に確認してから削除する習慣をつけよう。特にroot権限での操作は注意が必要だよ。

生徒

mtimeやatimeとの違いも理解できたので、用途に応じて使い分けていきたいです。

先生

それが大切だね。正しく使い分けることで、より効率的にファイル管理ができるようになるよ。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat --versionの使い方を完全解説!Linux初心者でもわかるバージョン確認の基本
New2
ファイル・ディレクトリ操作
touch --versionオプションの使い方を完全ガイド!初心者でもわかるバージョン確認方法
New3
ソートとユニーク処理
sortコマンドの基本!初心者でもわかるLinuxでテキストを並べ替える方法
New4
ファイル・ディレクトリ操作
find -deleteオプションを完全解説!初心者でもできるLinuxファイル削除の基本
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!