ファイルをlsすると、最後の修正日が11月29日11時13分に表示されますが、statではファイルが12月3日に変更されたと表示されますが、lsとstatから出力される日付がなぜ異なるのですか?
-rw-rr 1 iadm sys 266240 Nov 29 11:13 log_backup_1_0_26337600_26341632.1417281197106
-rw-rr 1 iadm sys 1585152 Nov 29 11:13 log_backup_0_0_0_0.1417281197131
stat log_backup_0_0_0_0.1417281197131
File: `log_backup_0_0_0_0.1417281197131'
Size: 1585152 Blocks: 3096 IO Block: 32768 regular file
Device: 22h/34d Inode: 17232 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1002/ iadm) Gid: ( 79/ sys)
Access: 2014-11-29 11:13:17.000000000 -0600
Modify: 2014-11-29 11:13:17.000000000 -0600
**Change: 2014-12-03 09:56:57.618281823 -0600**
Birth: -
stat log_backup_1_0_26337600_26341632.1417281197106
File: `log_backup_1_0_26337600_26341632.1417281197106'
Size: 266240 Blocks: 520 IO Block: 32768 regular file
Device: 22h/34d Inode: 17231 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1002/ iadm) Gid: ( 79/ sys)
Access: 2014-11-29 11:13:17.000000000 -0600
Modify: 2014-11-29 11:13:17.000000000 -0600
**Change: 2014-12-03 09:56:57.606281658 -0600**
Birth: -
答え1
ls -l
ファイルの内容が最後に変更された時間のみを表示し、stat
ファイルシステム構造内でファイルが最後に変更された時間(inode の変更)も提供します。
たとえば、ファイル名が変更される前と後のタイムスタンプを比較します。
$ touch abc.txt
$ stat abc.txt
(...)
Access: 2014-12-05 19:23:18.515079101 +0000
Modify: 2014-12-05 19:23:18.515079101 +0000
Change: 2014-12-05 19:23:18.515079101 +0000
$ mv abc.def def.txt
$ stat def.txt
(...)
Access: 2014-12-05 19:23:18.515079101 +0000
Modify: 2014-12-05 19:23:18.515079101 +0000
Change: 2014-12-05 19:24:45.306744159 +0000
同じ「修正された」時間がありますが、最後の「変更された」時間が変更されました。
ls
使用オプションを使用して「変更された」時間を表示するには、次のページ-lc
に進みますman ls
。
-c -lt とともに使用: ctime を並べ替えて表示 (ファイルの状態情報が最後に変更された時刻) -l とともに使用: ctime を表示して名前で並べ替え そうでない場合: ctime で並べ替え、最新の項目から並べ替え
だから:
$ ls -l def.txt
-rw-r--r-- 1 jimmij jimmij 0 Dec 5 19:23 def.txt
$ ls -lc def.txt
-rw-r--r-- 1 jimmij jimmij 0 Dec 5 19:24 def.txt