Lista de archivos por última fecha de edición
Digamos que tengo un directorio como /home/user/
.
¿Cómo puedo listar CADA archivo (incluso en subdirectorios) debajo de esa carpeta, y ordenarlos por la fecha en que se editaron por última vez?
2 answers
Puedes usar:
$ ls -Rt
Donde -R
significa recursivo (incluir subdirectorios) y -t
significa "ordenar por fecha de última modificación".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-10 12:23:31
Si desea una lista maestra en la que todos los archivos estén ordenados juntos por fecha de modificación, mostrando el directorio en el que se encuentran, pero no agrupados por directorio , puede usar 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án este error: find: -printf: unknown primary or operator
). Afortunadamente puedes instalar GNU find a través de Homebrew (allí debería ser una opción para Fink y Macports también):
brew install findutils
Después de instalarlo, GNU find debería estar disponible para usted como gfind
. Por lo tanto, todo lo que necesita 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 ' '
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-16 21:45:26