Obtenha a última data modificada do arquivo no Linux

107

Sou novo no Linux. Eu estou usando a linha de comando. Estou tentando ver a data da última modificação de um arquivo. Como faço isso no Linux a partir da linha de comando?

    
por user70192 03.04.2014 / 14:45

5 respostas

90

Como mencionado por @ edvinas.me, stat informa várias informações sobre o arquivo, incluindo a data da última modificação.

No começo, eu estava confuso com Modificar e Alterar , apenas para esclarecer, stat listas de saída:

  • Acesso mostra a hora do último acesso a dados (por exemplo, leitura).
  • Modificar mostra a hora da última modificação de dados.
  • Alterar mostra a hora em que o status do arquivo foi alterado pela última vez.

Por exemplo:

~ $ touch foo
~ $ stat foo
File: ‘foo’
Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 410397      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:06:11.343616258 +0200
Modify: 2015-09-21 12:06:11.343616258 +0200
Change: 2015-09-21 12:06:11.343616258 +0200
Birth: -

~ $ echo "Added bar to foo file" >> foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:09:31.302713093 +0200
Birth: -

~ $ chmod 444 foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0444/-r--r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:10:16.040310543 +0200
Birth: -
    
por 21.09.2015 / 12:22
56

Use o comando stat para isso:

$ stat file
    
por 03.04.2014 / 14:47
16

Outra maneira mais flexível é usar date -r . De man date :

-r, --reference=FILE
       display the last modification time of FILE

Isso tem a vantagem de permitir que você especifique o formato de saída, por exemplo,

$ date -r foo
Thu Aug 31 10:36:28 AEST 2017
$ date -r foo -R
Thu, 31 Aug 2017 10:36:28 +1000
$ date -r foo -u
Thu Aug 31 00:36:28 UTC 2017
$ date -r foo +%s
1504139788
    
por 31.08.2017 / 03:04
14

ls -l deve fazer o trabalho.

Exemplo:

#> ls -l /home/TEST/
total 16

-rw-r--r--   1 rfmas1   nms          949 Nov 16 12:21 create_nd_lists.py

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 enb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nodes_ip.txt

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 rnc_list
    
por 16.11.2015 / 06:43
2

Se o arquivo estiver em outro servidor da web, eu gosto de httpie ( docs ).

Instalação

pip install httpie --user

Uso

O comando -h fornece apenas o cabeçalho. O padrão é

http -h [url] | grep 'Last-Modified\|Date'

Exemplo:

$ http -h https://martin-thoma.com/author/martin-thoma/ | grep 'Last-Modified\|Date'
Date: Fri, 06 Jan 2017 10:06:43 GMT
Last-Modified: Fri, 06 Jan 2017 07:42:34 GMT

O Date é importante, pois isso informa a hora do servidor, não a hora local. Além disso, nem todo servidor envia Last-Modified (por exemplo, o superusuário parece não fazer isso).

    
por 06.01.2017 / 11:08