105 votes

Liste des fichiers par date de dernière modification

Disons que j'ai un répertoire comme-

/ home / utilisateur /

et je veux lister CHAQUE fichier (même dans des sous-répertoires) sous ce dossier et les classer par date de dernière modification.

Puis-je et si oui, comment?

Merci!

176voto

mipadi Points 135410

Vous pouvez utiliser:

 $ ls -Rt
 

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

74voto

Dennis Williamson Points 105818

Si vous souhaitez une liste de base dans lequel tous les fichiers sont triées par date de modification, montrant le répertoire qu'ils sont, mais ne sont 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 qui utilisent Mac OS X, l'option -printf n'est pas disponible sur BSD trouver (vous obtenez ce message d'erreur: find: -printf: unknown primary or operator). Heureusement, vous pouvez Installer GNU trouver via Homebrew (il devrait y avoir une option pour Fink et Macports ):

brew install findutils

Après avoir installer GNU trouver devrait être disponible pour vous en tant que gfind. Donc, tout ce que vous devez faire est de modifier la ligne ci-dessus pour:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X