web-dev-qa-db-fra.com

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

Je sais que ls -t listera tous les fichiers par date de modification. Mais comment puis-je limiter ces résultats aux derniers n fichiers?

113
Ryan

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) indique un fichier par ligne et la tête dit de prendre les 5 premières entrées.

Si vous voulez les 5 derniers essais

ls -1t | tail -5
208
Paul Rubel

Utilisez la commande tail:

ls -t | tail -n 5
12
Alex

La réponse acceptée ne répertorie que les noms de fichiers, mais pour obtenir les 5 meilleurs fichiers, on peut également utiliser:

ls -lht | head -6

où:

-l affiche un format de liste

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

-t trie la sortie en plaçant en premier le dernier fichier modifié

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

Je pense que cette approche est 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

9
samisnotinsane

ls -t liste les fichiers en fonction de l'heure de création et de l'heure de la dernière modification. Utilisez ls -ltc si vous souhaitez répertorier les fichiers par date de dernière modification, de la dernière à la première (de haut en bas). Donc pour lister le dernier n: ls -ltc | head ${n}

1
victrr