Quindi so che l'analisi di ls è dannosa!.
Oggi ho trovato questa pepita:
FILENAME=`ls -t $READ_FOLDER | head -1`
Quindi credo che originariamente questo fosse stato progettato per prendere il nome file più recente, in realtà ora voglio adattarlo, per prendere forse il 5° il file più recente poiché il processo di verifica è un po' lento e quindi non possiamo essere sicuri che siano stati ancora elaborati.
Sto lavorando in bash, ma non mi oppongo anche a una soluzione generica sh.
Risposta accettata:
Puoi usare GNU find
per elencare i file con l'ora modificata espressa come epoch time, quindi utilizzare sort
per ordinare la lista, infine head
e tail
per ottenere il nome del file numerato desiderato :
find . -maxdepth 1 -type f -printf '%[email protected] %pn' | sort -k1,1nr | head -5 | tail -1