2009-09-10 8 views

Répondre

128

Vous pouvez utiliser:

$ ls -Rt 

-R signifie (récursives) et inclure les sous-répertoires "trier par date de dernière modification" -t moyens.

+13

Merci, c'est parfait. J'ai ajouté un -l dedans là aussi je peux réellement voir les dates ainsi pour n'importe qui qui recherche ceci plus tard, c'est- $ ls -lRt – Marty

+3

Si vous faites ceci à l'invite et voulez voir le plus fichiers récemment modifiés, considérons 'ls -lrt [RhA]'. le '-r' inverse l'ordre de tri, laissant les choses récemment éditées en bas de la liste ... – dmckee

+0

Ceci ajouté à un' -ila' vous donne à peu près toutes les informations dont vous auriez besoin. '$ ls -ilaRt' – Falkenfighter

64

Si vous souhaitez une liste maîtresse dans laquelle tous les fichiers sont classés ensemble par date de modification, indiquant le répertoire dans lequel ils sont, mais pas regroupés par répertoire, vous pouvez utiliser ceci:

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

Le résultat ressemble beaucoup 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

Pour ceux d'entre vous utilisant Mac OS X, l'option -printf n'est pas disponible sur la recherche BSD (vous obtiendrez cette erreur: find: -printf: unknown primary or operator). Heureusement, vous pouvez installer GNU trouver par Homebrew (il devrait y avoir une option pour Fink et Macports ainsi):

brew install findutils 

Après l'installer GNU trouver devraient être disponibles pour vous gfind. Donc, tout ce que vous devez faire est de changer la ligne ci-dessus pour:

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

Nice one. L'ensemble du regroupement d'annuaire avec ls -R est ennuyeux. –

+0

Excellent morceau de code, merci! –

+1

Bon code, il a fallu le script env. 5 secondes pour trier et imprimer des photos 13k dans de nombreux dossiers différents (via Cygwin sur un ordinateur assez lent). – Magnus

Questions connexes