Por que ls e stat mostram diferentes datas modificadas? [duplicado]

1

Quando eu ls um arquivo a última data modificada mostra como 29 de novembro 11:13, mas stat mostra o arquivo alterado em 3 de dezembro, por que a data é diferente em ls e saída 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: -
    
por Jonu 05.12.2014 / 19:10

1 resposta

0

ls -l mostra apenas a hora da última modificação do conteúdo do arquivo, e stat adicionalmente fornece o tempo da última alteração do arquivo na estrutura do sistema de arquivos (modificação de inode).

Por exemplo, vamos comparar o registro de data e hora antes e depois de uma alteração no nome do arquivo:

$ 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

Observe a mesma hora "Modificar", mas a hora da última "Alteração" foi alterada.

Se você quiser ver a hora "Alterar" com a opção ls use -lc , de man ls :

-c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort by ctime, newest first

Então:

$ 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
    
por 05.12.2014 / 19:33

Tags