Obtener la última fecha de modificación del archivo en Linux
Soy nuevo en Linux. Estoy usando la línea de comandos. Estoy intentando ver la última fecha de modificación de un archivo. ¿Cómo lo hago en Linux desde la línea de comandos?
Soy nuevo en Linux. Estoy usando la línea de comandos. Estoy intentando ver la última fecha de modificación de un archivo. ¿Cómo lo hago en Linux desde la línea de comandos?
Como lo menciona @edvinas.me, stat
te dice varias informaciones sobre el archivo incluyendo la última fecha de modificación.
Al principio, me confundí con Modificar y Cambiar, sólo para aclarar, stat
listas de salida:
Por ejemplo:
~ $ 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: -
Otra forma más flexible es usar date -r
. A partir de man date
:
-r, --reference=FILE
display the last modification time of FILE
Esto tiene la ventaja de permitirle especificar el formato de salida, por ejemplo
$ 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
ls -l
debería hacer el trabajo.
Ejemplo:
#> 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
Construyendo a partir del comentario de Adam Taylor en la respuesta de @phoops y la respuesta de @Sparhawk.
Para obtener específicamente la fecha ** (usando el 3 de octubre de 2019 como ejemplo porque fue mi último cumpleaños, aquí está mi venmo si te sientes llevado a bendecirme financieramente: @levi_uzodike)
stat -c %y file | cut -d' ' -f1
te dará 2019-10-03
date +%F -r file
también te dará 2019-10-03
date +%D -r file
te dará 10/03/19
date +%x -r file
te dará probablemente o 10/03/2019
si estás en EEUU y o 10/03/19
, o 03/10/2019
si estás en el Reino Unido, sólo para nombrar un par de ejemplos (por supuesto que hay más posibilidades) Estas opciones de formato de 03/10/19
son, a mi entender, combinaciones de otras opciones de formato. Aquí hay algunas explicaciones de la página man :
%b nombre del mes abreviado de la localidad (por ejemplo, Enero) %B nombre del mes completo de la localidad (por ejemplo, Enero) … %d día del mes (ej., 01) %D fecha; igual que %m/%d/%y %e día del mes, espacio acolchado; igual que %_d %F fecha completa; igual que %Y-%m-%d … %m mes (01..12) … … %x representación de la fecha del locale (ej.., 31/12/99) … %y dos últimos dígitos del año (00..99) %Y año … Por defecto, la fecha rellena los campos numéricos con ceros.
Las siguientes banderas opcionales pueden seguirdate
%F`%‘:
- (hyphen) do not pad the field
_ (underscore) pad with spaces
0 (zero) pad with zeros
^ use upper case if possible
# use opposite case if possible
N.B.: These flags don’t work on the “combo formats” like %D
, %x
and date +%b
. They are for the “singular field formats”.
Apparently this last flag ( # ) does not work as I’d expect (e.g., if Oct
gives date +%#b
, OCT
gives oCT
as opposed to date +%#p
) I guess this would be useless, but I’d think a lower case option would be more useful. fecha +%p
does turn PM
which might give AM
or pm
into am
or fecha +%P
, respectively. So I guess it’s not a 'per-character’ case switch but sets the case of all the characters in the string to the opposite case of the majority of the characters? Also pm
gives am
or fecha +%^P
, but neither fecha +%#P
nor %P
change its output. My guess for this case is that %#p
is just an alias for fecha +%0- e
, and it seems that whenever you add more than one flag, the behavior is undefined/unpredictable ( e.g., date +%-e
gives the same as 3
: date +%-0e
and date +%0e
gives the same as 03
: date +%#^p
, which makes you think that only the flag next to the letter works or that it goes left to right, but both date +%^#p
and pm
give am
or `locale -k LCTIME | grep ^dfmt`, [depending on the time of course] ) unless there’s some hidden order of operations? Sorry for digressing…
Also, if you run the command d_fmt="%m/%d/%Y"
, you can see the combo for the specific locale of your system (e.g., date +%^b\ %-e\ %Y -r file
).
And you can make your own combo. For example,
OCT 3 2019
Si el archivo está en otro servidor web, me gusta httpie
docs ).
pip install httpie --user
El comando -h
sólo da el encabezado. El patrón es
http -h [url] | grep 'Last-Modified\|Date'
Ejemplo:
$ 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
El Date
es importante ya que reporta la hora del servidor, no su hora local. Además, no todos los servidores envían Last-Modified
(por ejemplo, el superusuario parece no hacerlo).
1) Listar el directorio de archivos con la fecha/hora de la última modificación
Para listar los archivos y mostrar los últimos archivos modificados en la parte superior, usaremos las opciones
-lt
con el comandols
.$ ls -lt /run output total 24 -rw-rw-r--. 1 root utmp 2304 Sep 8 14:58 utmp -rw-r--r--. 1 root root 4 Sep 8 12:41 dhclient-eth0.pid drwxr-xr-x. 4 root root 100 Sep 8 03:31 lock drwxr-xr-x. 3 root root 60 Sep 7 23:11 user drwxr-xr-x. 7 root root 160 Aug 26 14:59 udev drwxr-xr-x. 2 root root 60 Aug 21 13:18 tuned
https://linoxide.com/linux-how-to/how-sort-files-date-using-ls-command-linux/