166 votes

Comment puis-je lister (ls) les 5 derniers fichiers modifiés dans un répertoire ?

Je sais. ls -t listera tous les fichiers par heure de modification. Mais comment puis-je limiter ces résultats au dernier fichier modifié ? n des fichiers ?

294voto

Paul Rubel Points 13132

Essayez d'utiliser la tête ou la queue. Si vous voulez les 5 fichiers les plus récemment modifiés :

ls -1t | head -5

Le -1 (c'est un un) dit un fichier par ligne et le head dit de prendre les 5 premières entrées.

Si vous voulez les 5 derniers, essayez

ls -1t | tail -5

36voto

samisnotinsane Points 522

La réponse acceptée ne liste que les noms de fichiers, mais pour obtenir les 5 premiers fichiers, on peut aussi utiliser :

ls -lht | head -6

où :

-l sorties dans un format de liste

-h rend la sortie lisible par l'homme (c'est-à-dire que les tailles de fichiers apparaissent en kb, mb, etc.)

-t trie la sortie en plaçant le fichier le plus récemment modifié en premier

head -6 affichera 5 fichiers car ls imprime la taille du bloc dans la première ligne de la sortie.

Je pense que c'est une approche légèrement plus élégante et peut-être plus utile.

Exemple de sortie :

total 26960312 -rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py -rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf -rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf -rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf -rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv

14voto

Alex Points 3448

Utilisez tail commandement :

ls -t | tail -n 5

7voto

Headbank Points 303

Par défaut ls -t trie la sortie du plus récent au plus ancien, donc la combinaison de commandes à utiliser dépend de la direction dans laquelle vous voulez que votre sortie soit ordonnée.

Pour les 5 derniers fichiers classés du plus récent au plus ancien, utilisez head pour prendre les 5 premières lignes de la sortie :

ls -t | head -n 5

Pour obtenir les 5 derniers fichiers classés du plus ancien au plus récent, utilisez la commande -r passer à la marche arrière ls et utiliser l'ordre de tri de tail pour prendre les 5 dernières lignes de la sortie :

ls -tr | tail -n 5

2voto

victrr Points 37

ls -t liste les fichiers par heure de création et non par heure de dernière modification. Utilisez ls -ltc si vous voulez lister les fichiers par heure de dernière modification, de la dernière à la première (de haut en bas). Ainsi pour lister les n derniers : ls -ltc | head ${n}

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