liste de fichiers dans un répertoire

Je cherche un moyen de lister les 100 premiers fichiers (par date de création) dans un répertoire sans avoir à faire une liste complète du répertoire, puis à le redirect vers un autre utilitaire pour tronquer les résultats. La raison étant qu’il y a beaucoup de fichiers dans le répertoire.

En cours d’exécution (ls -l | head -n 100) prend trop de temps pour terminer la première partie. Je voudrais quitter une fois les 100 premières sans avoir à lire le contenu complet du répertoire.

Est-ce possible de le faire sous Linux RHE?

trouver semble être légèrement plus rapide que ls . Je regardais un répertoire contenant mille fichiers vides.

La commande de temps est utile pour… vous l’avez deviné… pour déterminer combien de temps ça prend.

 time ls -l | head -n 100 real 0m0.014s user 0m0.007s sys 0m0.008s time ls -1 |head -n 100 real 0m0.009s user 0m0.006s sys 0m0.006s time find . -maxdepth 1 -type f |head -n 100 real 0m0.007s user 0m0.003s sys 0m0.005s 

Comme vous traitez le répertoire à partir d’un programme et non la ligne de commande, vous devez utiliser le système pour appeler le répertoire, opendir, closedir et readdir. Il est simple d’utiliser ces appels système à partir d’un programme C. Je pense qu’il existe un moyen d’utiliser ces appels à partir de Java.