カテゴリ: Linuxコマンド集 更新日: 2025/12/19

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にあたる部分です。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
Linuxのls --full-timeオプションを完全ガイド!初心者でもわかるタイムスタンプのフル表示方法