2009-04-09 13:17:20 +0000 2009-04-09 13:17:20 +0000
1422
1422

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 ?

Réponses (10)

1687
1687
1687
2009-04-09 13:20:44 +0000
ls -t

ou (pour le verso, le plus récent en bas) :

ls -tr

La page de manuel ls décrit cela plus en détail, et énumère d'autres options.

155
155
155
2010-04-06 14:44:45 +0000

Essayez ceci : ls -ltr. Il vous donnera les récentes jusqu'à la fin de la liste

48
48
48
2012-04-15 20:23:29 +0000

Pour une réponse complète, voici ce que j'utilise : ls -lrth

Mettez ceci dans votre script de démarrage /etc/bashrc et attribuez un alias comme ceci : alias l='ls -lrth' Redémarrez votre terminal et vous devriez pouvoir taper l et voir une longue liste de fichiers.

31
31
31
2013-07-19 11:01:24 +0000

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 chercher récursivement quels fichiers ont été modifiés dans les 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 passage de -d à ls pour ne pas afficher le contenu des répertoires)

Une méthode plus robuste ?

Regardez mon anser à finder et trier par date de modification

22
22
22
2012-04-15 18:41:06 +0000

Ajouter :

alias lt='ls -Alhtr'

dans $homedir/.bashrc

18
18
18
2017-07-26 07:21:37 +0000

Mnémonique

Pour ne pas ignorer les entrées commençant par . et trier par date (les plus récentes d'abord) :

ls -at

Pour ne pas ignorer les entrées commençant par . et trier par date (les plus anciennes d'abord) :

ls -art

Pour ne pas ignorer les entrées commençant par ., utiliser un format de liste longue et trier par date (les plus récentes d'abord) : Pour les tailles lisibles en impression, n'ignorez pas les entrées commençant par ., utilisez une liste longue et triez par date (les plus récentes d'abord) (note de @EvgeniSergeev) :

ls -alt

mais faites attention à la dernière , car une simple erreur de frappe peut provoquer un plantage du serveur. .. (@Isaac note)

16
16
16
2013-11-11 16:11:57 +0000

Trouvez tous les fichiers sur le système de fichiers qui ont été modifiés au maximum 3 * 24 heures (3 jours) il y a jusqu'à présent :

find / -ctime 3
12
12
12
2016-03-06 18:21:16 +0000

Pour afficher les 10 plus récentes classées par date, j'utilise quelque chose comme ceci :

ls -t ~/Downloads | head -10

ou pour afficher les plus anciennes

ls -tr ~/Downloads | tail -10
9
9
9
2014-06-15 21:47:51 +0000

En utilisant uniquement des commandes Unix très basiques :

ls -nl | sort -k 8,8n -k 6,6M

Cela a fonctionné sous Linux ; la colonne 8 est “n” (numérique), la colonne 6 est “M”, mois.

Je suis nouveau à sort, donc cette réponse pourrait probablement être améliorée. Sans compter qu'il faut ajouter des options à ls et sort pour utiliser des horodatages exacts, mais tout le monde n'en aura pas besoin.

-1
-1
-1
2020-02-28 11:04:14 +0000

Une façon possible d'afficher par exemple les 10 derniers fichiers modifiés est de suivre la commande :

ls -lrth | tail -n 10

Description de la commande ci-dessus:

ls - list

arguments :

l - long
r - reverse
t - sort by time
h - human readable

puis de l'envoyer à la commande tail, qui affiche seulement 10 lignes récentes, définies par le paramètre n (nombre de lignes)…