2009-09-10 15 views

Respuesta

128

Se puede utilizar:

$ ls -Rt 

donde -R significa recursivas (incluir los subdirectorios) y -t significa "ordenar por fecha de la última modificación".

+13

Gracias, eso es perfecto. que añade un -l en allí también, así que puede ver las fechas así que para cualquier persona que busca en esto más adelante, es- $ ls -lrt – Marty

+3

Si usted está haciendo esto en el indicador y quieren ver más archivos recientemente modificados, considere 'ls -lrt [RhA]'. el '-r' invierte el orden de clasificación, dejando cosas editadas recientemente en la parte inferior de la lista ... – dmckee

+0

Esto añadido a' -ila' le proporciona prácticamente toda la información que podría necesitar. '$ ls -ilaRt' – Falkenfighter

64

Si desea una lista maestra en la que todos los archivos están ordenados juntos Por fecha de modificación, que muestra el directorio en que están, pero no agrupados por directorio, puede utilizar esto:

find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' ' 

El resultado se parece mucho a ls -l:

 
-rw-r--r-- 1 root  root   3892 08/11/2009 11:03:36 /usr/share/man/man1/xmllint.1.gz 
-rw-r--r-- 1 root  root  22946 08/13/2009 11:59:20 /usr/share/man/man1/curl.1.gz 
-rw-r--r-- 1 root  root   728 08/17/2009 12:06:33 /usr/share/man/man1/thunderbird.1.gz 
-rw-r--r-- 1 root  root   873 08/18/2009 10:52:47 /usr/share/man/man1/libgnutls-config.1.gz 
-rw-r--r-- 1 root  root   2552 08/19/2009 02:00:34 /usr/share/man/man3/Purple.3pm.gz 
-rw-r--r-- 1 root  root   9546 08/19/2009 02:02:00 /usr/share/man/man1/pidgin.1.gz 
-rw-r--r-- 1 root  root   2201 08/19/2009 02:02:46 /usr/share/man/man3/Pidgin.3pm.gz 
-rw-r--r-- 1 root  root   926 08/19/2009 02:03:05 /usr/share/man/man1/purple-remote.1.gz 
-rw-r--r-- 1 root  root  18052 08/19/2009 04:11:47 /usr/share/man/man1/mono.1.gz 
-rw-r--r-- 1 root  root   1845 08/19/2009 04:11:47 /usr/share/man/man5/mono-config.5.gz 

Mac OS X

Para aquellos de ustedes que usan Mac OS X, la opción -printf no está disponible en BSD find (obtendrá este error: find: -printf: unknown primary or operator). Afortunadamente, usted puede instalar GNU encontrar a través Homebrew (debe haber una opción para Fink y MacPorts así):

brew install findutils 

Después de que la instalación de GNU encontrar debería estar disponible para usted como gfind. Entonces, todo lo que tiene que hacer es cambiar la línea de arriba a:

gfind . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' ' 
+3

Agradable. Todo el asunto de agrupar directorios con ls -R es molesto. –

+0

Excelente pedazo de código, gracias! –

+1

Gran código, tomó el script aprox. 5 segundos para ordenar e imprimir fotos de 13k en muchas carpetas diferentes (a través de Cygwin en una computadora bastante lenta). – Magnus

Cuestiones relacionadas