各ファイルには 3 つのタイムスタンプが関連付けられています (エポック (1970 年 1 月 1 日) からの秒数として保存されます)。 3 つのタイムスタンプは次のとおりです。
- アクセス時間 (atime) :ファイルが最後にアクセスされたときのタイムスタンプ。
- 変更時間 (mtime) :ファイルが最後に変更されたときのタイムスタンプ。
- 時間の変更 (-ctime) :ファイルのメタデータ (権限や所有権など) が最後に変更されたときのタイムスタンプ。
長いディレクトリ リストでは、表示されるタイムスタンプは変更時刻 (mtime) です。すべてのタイムスタンプとその他の有用な情報を表示するには、詳細オプション (-x) を指定して stat プログラムを使用します。
$ stat -x filename
stat からのサンプル出力は次のとおりです:
$ stat -x test.sh File: "test.sh" Size: 54 FileType: Regular File Mode: (0644/-rw-r--r--) Uid: ( 501/ geek) Gid: ( 20/ staff) Device: 1,4 Inode: 8954360 Links: 1 Access: Sat Jan 18 08:30:54 2020 Modify: Sat Jan 18 08:30:49 2020 Change: Sat Jan 18 08:30:49 2020
「-x」オプションを指定しないと、ファイルシステムのパーミッション、所有権、およびアクセス時間の概要が表示されます。例:
$ stat test.sh 16777220 8954360 -rw-r--r-- 1 sandy staff 0 54 "Jan 18 08:30:54 2020" "Jan 18 08:30:49 2020" "Jan 18 08:30:49 2020" "Jan 18 08:30:49 2020" 4096 8 0 test.sh
デフォルトでは、MAC はファイル作成時刻を保存しません。ただし、一部のファイルシステム (ufs2、ext4、zfs、btrfs、jfs) では、作成時間を節約できます。作成時間は stat コマンドでアクセスできます。一部のアプリケーションは、新しいファイルを作成してから元のファイルを削除することでファイルを変更するため、作成日が正確でない可能性があります。
find コマンドを使用してファイルのタイムスタンプで検索する
-atime、-mtime、および -ctime オプションは、find で使用できる時間パラメータ オプションです。整数値で日数を指定できます。番号の前に – または + 記号を付けることができます。 – 記号はより小さいことを意味し、+ 記号はより大きいことを意味します。
次の例を検討してください:
1. 過去 7 日間にアクセスされたファイルを印刷する:
$ find . -type f -atime -7 -print
2. アクセス時刻がちょうど 7 日前のファイルを印刷する:
$ find . -type f -atime 7 -print
3. アクセス時刻が 7 日より前のファイルを印刷する:
$ find . -type f -atime +7 -print
-mtime パラメータは、変更時間に基づいてファイルを検索します。 -ctime 変更時間に基づいて検索します。