1625 votes

Comment puis-je trier la sortie de 'ls' par date de dernière modification ?

Comment puis-je trier la sortie de ls par date de dernière modification ?

1 votes

Liés (pas nécessairement un doublon) : Unix/Linux find and sort by date modified

1955voto

Adnan Points 19519
ls -t

ou (pour l'inverse, le plus récent en bas) :

ls -tr

La ls page de manuel décrit ceci en détails et liste d'autres options.

372 votes

ls -halt est pour lisible par l'homme, afficher les fichiers cachés, imprimer les détails, trier par date.

10 votes

Au cas où quelqu'un se demanderait, les arguments -t et -r sont spécifiés dans la section sur ls dans la norme POSIX, ils devraient donc être compatibles sur tous les Unix.

9 votes

ls -llt pour afficher la date-heure en plus du tri

176voto

Rana Points 1851

Essayez ceci : ls -ltr. Cela vous donnera le plus récent à la fin de la liste

0 votes

J'ai utilisé ceci pour obtenir la liste des fichiers de mon référentiel Git par leur dernière date de modification. ls -alt $(git ls-files -m) Merci!

53voto

Dejan Points 971

For a complete answer here is what I use: ls -lrth

Put this in your startup script /etc/bashrc and assign an alias like this: alias l='ls -lrth' Restart your terminal and you should be able to type l and see a long list of files.

15 votes

Vous pouvez également appeler source /etc/bashrc si vous voulez l'ajouter à votre répertoire pendant l'exécution.

1 votes

Vous pouvez également l'ajouter dans ~/.bash_aliases uniquement pour votre utilisateur (on peut créer le fichier s'il n'existe pas déjà).

37voto

Brandon Belvin Points 360

J'utilise parfois ceci :

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

ou

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

pour rechercher de manière récursive quels fichiers ont été modifiés au cours des 5 dernières minutes.

... ou maintenant, avec la version récente de GNU find :

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

... et même pour ne pas se limiter aux fichiers :

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

(notez le commutateur -d pour ls pour ne pas afficher le contenu des répertoires)

Une façon plus robuste ?

Jetez un œil à ma réponse à find and sort by date modified

0 votes

En parlant de manière récursive, cela signifie qu'il répertorie tous les fichiers des sous-répertoires, mais ls n'a-t-il pas déjà un commutateur pour faire cela?

0 votes

@jiggunjer ls -Rltr triera par répertoire, puis par dates, find -type f -mmin -5 -exec ls -ltr {} + imprime simplement les fichiers modifiés dans les 5 dernières minutes, triés par date, indépendamment de l'arborescence des répertoires !

0 votes

Notez que cela ne fonctionnera pas si la liste des fichiers est trop longue pour être passée en une seule invocation de shell à ls (unix.stackexchange.com/a/118200/27186) - alors vous verrez un tas de fichiers triés, puis un autre tas de fichiers triés, etc. mais toute la liste ne sera pas triée. Voir superuser.com/questions/294161/… pour trier des listes plus longues avec find.

23voto

Layer8 Points 231

Ajouter :

alias lt='ls -Alhtr'

dans $homedir/.bashrc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X