Je veux trouver des fichiers dans des sous-répertoires triés par horodatage (de création), les plus récents en premier.
J'ai regardé la page de manuel, mais elle semble vous laisser filtrer uniquement par horodatage plutôt que trier par horodatage.
À quelles options puis-je passer pour find
y parvenir? Alternativement, comment puis-je le combiner avec un autre outil, comme sort
trier par horodatage?
find
dans un ordre trié particulier, au-delà du choix entre une recherche en profondeur d'abord et une recherche en premier.find
que ne peut être transmis à une seule instance dels
.Réponses:
Bien que la solution de Paul soit généralement correcte, elle implique plus d'E / S que simplement:
la source
find
renvoie des millions de fichiers? Le tri ne va-t-il pas tous les trier en une très longue liste? Est-ce que ça va encore être efficace? (Au lieu de trier chaque répertoire indépendamment.)find bin/ -type f -printf '%Ts\t%p\0' | sort -nrz | cut -f2 -z | xargs -0 ls
Les nouvelles versions decut
l'option -z, donc les noms de fichiers avec des nouvelles lignes fonctionneraient.xargs -0 ls -t
approche ne fonctionnera pas correctement lorsqu'il y a tant de fichiers quixargs
doivent démarrerls
plus d'une fois, mais cette approche continuera de fonctionner.-maxdepth 1
sur lefind
).