101 votes

Comment puis-je répertorier tous les fichiers dans un répertoire et sous-répertoires dans l'ordre chronologique inverse?

Je veux faire quelque chose comme ls -t mais aussi inclure les fichiers des sous-répertoires. Le problème est que je ne veux pas que la sortie soit formatée comme le fait ls -R, qui est comme ceci :

[test]$ ls -Rt
b       testdir test

./testdir:
a

Je veux que cela soit formaté comme le commande find affiche les fichiers dans les sous-répertoires. C'est-à-dire :

[test]$ find .
.
./b
./test
./testdir
./testdir/a

Mais ce que find ne semble pas faire, c'est d'ordonner les résultats chronologiquement par heure de dernière mise à jour.

Alors comment puis-je lister tous les fichiers dans un répertoire et sous-répertoires, dans le format que find utilise, mais dans l'ordre chronologique inverse ?

158voto

rashmi Points 1189

ls -lR est utilisé pour afficher tous les fichiers, répertoires et sous-répertoires du répertoire actuel ls -lR | more est utilisé pour afficher tous les fichiers en flux.

52voto

marco Points 1678

Essaye celui-là :

find . -type f -printf "%T@ %p\n" | sort -nr | cut -d\  -f2-

27voto

Parakleta Points 866

Si le nombre de fichiers que vous souhaitez afficher correspond à la limite d'argument maximale, vous pouvez utiliser le globbing pour obtenir ce que vous voulez, avec une récursivité si vous avez le support globstar.

Pour une profondeur exacte de 2 couches, utilisez : ls -d * */*

Avec globstar, pour la récursivité utilisez : ls -d **/*

L'argument -d à ls lui indique de ne pas récursif les répertoires passés en arguments (puisque vous utilisez le globbing de shell pour faire la récursivité). Cela empêche ls d'utiliser son formatage de récursivité.

8voto

Bobby Points 51

Essayez find . -type d ou find . -type d -ls

3voto

yankee Points 6587
trouver -type f -print0 | xargs -0 ls -t

Inconvénient : Ne fonctionne que jusqu'à un certain nombre de fichiers. Si vous avez un nombre extrêmement important de fichiers, vous avez besoin de quelque chose de plus compliqué

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