¿Por qué "ls-all" muestra tiempo para algunos archivos pero solo año para otros?

32

Si emite el ls -allcomando, ¿algunos archivos o directorios tienen el año y otros tienen el tiempo? ¿Por qué algunos muestran el año mientras que otros muestran la hora? ¿Es el tiempo representativo del momento en que se creó el archivo?

ingrese la descripción de la imagen aquí

Jonathan Kittell
fuente
15
Usted está utilizando -all. Tenga en cuenta que la última L es superflua, porque allno significa la palabra "todos" sino " -amostrar todos los archivos" y -l(formato de listado largo). Todo junto, ls -ales lo mismo que estás usando.
fedorqui

Respuestas:

35

De manera predeterminada, las marcas de tiempo del archivo se enumeran en forma abreviada, utilizando una fecha como '30 de marzo de 2002' para marcas de tiempo no recientes y una fecha sin año y hora como '30 de marzo 23:45' para marcas de tiempo recientes. Este formato puede cambiar según la configuración regional actual como se detalla a continuación.

Una marca de tiempo se considera reciente si tiene menos de seis meses y no tiene fecha en el futuro. Si una marca de tiempo con fecha de hoy no figura en la lista en forma reciente, la marca de tiempo está en el futuro, lo que significa que probablemente tenga problemas de sesgo de reloj que pueden interrumpir programas como hacer que dependan de marcas de tiempo de archivo.

Fuente: http://www.gnu.org/software/coreutils/manual/coreutils.html#Formatting-file-timestamps

Para ilustrar:

$ for i in {1..7}; do touch -d "$i months ago" file$i; done
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Sep 21 02:38 file1
-rw-r--r-- 1 terdon terdon 0 Aug 21 02:38 file2
-rw-r--r-- 1 terdon terdon 0 Jul 21 02:38 file3
-rw-r--r-- 1 terdon terdon 0 Jun 21 02:38 file4
-rw-r--r-- 1 terdon terdon 0 May 21 02:38 file5
-rw-r--r-- 1 terdon terdon 0 Apr 21  2015 file6
-rw-r--r-- 1 terdon terdon 0 Mar 21  2015 file7
Thomas Weinbrenner
fuente
44
Vale la pena señalar que los tiempos en el futuro también mostrarán el año en lugar del tiempo. Esto puede suceder si intercambia archivos entre hosts donde el reloj no está sincronizado.
Kasperd
24

El tiempo representado es el tiempo de modificación. Tenga en cuenta que ls -alles lo mismo que ls -l -a, que es diferente de ls --all. No hay razón para usar double len su ejemplo. Si desea ver el tiempo de modificación para cada archivo, puede usarlo ls -al --full-time.

Kira
fuente
44
En GNU lspara uso normal --time-style=long-isopodría ser más útil. --full-timemuestra segundos incluyendo nueve cifras (!) después del punto decimal que normalmente no es necesario.
Pabouk
1
--full-timeimplica -l, por lo que podría usar ls -a --full-time.
Kasperd
6

Si la fecha / hora que está tratando de mostrar es en los últimos seis meses, lsmuestra la fecha y la hora. Si hace más de seis meses, o si es en el futuro, lsmuestra la fecha y el año.

Como se indica en las otras respuestas,

  • ls -lles equivalente a ls -ly
  • ls -alles equivalente a ls -al, que es equivalente a ls -a -l, ls -l -a, y ls -la.

Con la -lopción, lsmuestra la fecha / hora de modificación de los archivos (incluidos los directorios, ya que "todo es un archivo"), a menos que

  • -c también se especifica, en cuyo caso muestra el tiempo de cambio, o
  • -u también se especifica, en cuyo caso muestra el tiempo de acceso.

Ver ls (1) para más información.

G-Man dice 'restablecer a Mónica'
fuente
3

Esta salida está ajustada para el contenido máximo de información: cuando la hora está "lo suficientemente cerca" de la hora actual (no del todo seguro, pero supongo que dentro de los seis meses) se elude el año y se muestra la hora del día. De lo contrario, se muestra el año. Este es el valor predeterminado principalmente porque es probable que no le importe tanto la hora exacta del día en que se modificó algo, si esa hora es hace años. GNU coreutils lstiene la --time-styleopción de controlar esto explícitamente.

Tom Hunt
fuente
0

¿Te has dado cuenta de algo? Simplemente aparece la hora del 20 de octubre, que es hoy, lo que significa que mostrará la última vez que modificó el archivo, pero, en otros días que no son hoy, solo mostrará la fecha sin la hora.

Resulta que no es esto, como respondió Thomas. Solo intenté usar el método de deducción, no estoy seguro de tener una conclusión correcta después de todo.

Rafael Campos Nunes
fuente
1
Aug 6 19:50 .config, Aug 6 19:48 VNCHOWTO.
G-Man dice 'reinstalar a Monica' el
Perfecto, acabo de hacer una deducción buscando las fechas y conectando los puntos, lo que no siempre puede ser una conclusión perfecta.
Rafael Campos Nunes