2009-04-09 13:17:20 +0000 2009-04-09 13:17:20 +0000
1422
1422

¿Cómo puedo ordenar la salida de 'ls' por la última fecha modificada?

¿Cómo puedo ordenar la salida de ls por la última fecha modificada?

Respuestas (10)

1687
1687
1687
2009-04-09 13:20:44 +0000
ls -t

o (para el reverso, el más reciente al final):

ls -tr

La ls man page describe esto con más detalles, y enumera otras opciones.

155
155
155
2010-04-06 14:44:45 +0000

Pruebe esto: ls -ltr. Te dará los recientes hasta el final de la lista

48
48
48
2012-04-15 20:23:29 +0000

Para una respuesta completa aquí está lo que uso: ls -lrth

Ponga esto en su script de inicio /etc/bashrc y asigne un alias como este: alias l='ls -lrth' Reinicie su terminal y debería poder escribir l y ver una larga lista de archivos.

31
31
31
2013-07-19 11:01:24 +0000

Uso alguna vez esto:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr

o

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr

para mirar recursivamente sobre qué archivos fueron modificados en los últimos 5 minutos.

… o ahora, con la reciente versión de GNU find:

find . -type f -mmin -5 -exec ls -ltr {} +

… e incluso para no limitarse a los archivos:

find . -mmin -5 -exec ls -ltrd {} +

(note el cambio de -d a ls por no mostrar el contenido de los directorios)

¿Más robusto?

Eche un vistazo a mi respuesta a encontrar y ordenar por fecha de modificación

22
22
22
2012-04-15 18:41:06 +0000

Añade:

alias lt='ls -Alhtr'

en $homedir/.bashrc

18
18
18
2017-07-26 07:21:37 +0000

Mnemotécnico

Para no ignorar las entradas que comienzan con . y clasificar por fecha (las más nuevas primero):

ls -at

Para no ignorar las entradas que comienzan con . y clasificar por fecha (las más antiguas primero):

ls -art

Para no ignorar las entradas que comienzan con ., usa un formato de lista larga y clasificar por fecha (las más nuevas primero):

ls -alt

Para imprimir tamaños legibles para humanos, no ignore las entradas que empiezan con ., use un formato de lista larga y clasificar por fecha (la más reciente primero) (@Nota de EvgeniSergeev):

ls -halt

pero tenga cuidado con la última , porque un simple error de escritura puede causar una caída del servidor. .. (@Nota de Isaac)

16
16
16
2013-11-11 16:11:57 +0000

Encuentra todos los archivos del sistema de archivos que fueron modificados como máximo hace 3 horas (3 días) hasta ahora:

find / -ctime 3
12
12
12
2016-03-06 18:21:16 +0000

Para mostrar los 10 más recientes ordenados por fecha, uso algo como esto:

ls -t ~/Downloads | head -10

o para mostrar los más antiguos

ls -tr ~/Downloads | tail -10
9
9
9
2014-06-15 21:47:51 +0000

Usando sólo comandos muy básicos de Unix:

ls -nl | sort -k 8,8n -k 6,6M

Esto funcionó en Linux; la columna 8 es “n” (numérica), la columna 6 es “M”, mes.

Soy nuevo en sort, así que esta respuesta probablemente podría ser mejorada. Sin mencionar que necesita opciones adicionales a ls y sort para usar marcas de tiempo exactas, pero no todos necesitarán esto.

-1
-1
-1
2020-02-28 11:04:14 +0000

Una posible forma de mostrar por ejemplo los últimos 10 archivos modificados es el siguiente comando:

ls -lrth | tail -n 10

Descripción del comando anterior:

ls - list

argumentos:

l - long
r - reverse
t - sort by time
h - human readable

entonces se canaliza al comando tail, que muestra sólo 10 líneas recientes, definidas por el parámetro n (número de líneas)…