Donc je sais que l'analyse de ls est mauvaise !
Aujourd'hui j'ai trouvé cette pépite :
FILENAME=`ls -t $READ_FOLDER | head -1`
Donc, je crois qu'à l'origine, cela a été conçu pour saisir le nom de fichier le plus récent, je veux en fait maintenant l'adapter, pour saisir peut-être le 5ème fichier le plus récent car le processus qui le vérifie est un peu lent, et nous ne pouvons donc pas être sûrs qu'ils ont encore été traités.
Je travaille en bash, mais je ne m'oppose pas non plus à une solution générique sh.
Réponse acceptée :
Vous pouvez utiliser GNU find
pour lister les fichiers avec l'heure modifiée exprimée en heure d'époque, puis utilisez sort
pour trier la liste, enfin head
et tail
pour obtenir le nom de fichier numéroté souhaité :
find . -maxdepth 1 -type f -printf '%[email protected] %pn' | sort -k1,1nr | head -5 | tail -1