GNU/Linux >> Linux Esercitazione >  >> Linux

Come elencare l'ennesimo file più giovane (senza analizzare Ls!)?

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 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

Linux
  1. Come utilizzare il comando Tar in Linux

  2. Come elencare le dipendenze di un pacchetto in Linux

  3. Come aggiungere una nuova riga alla fine di un file?

  4. Come aggiungere l'output a un file?

  5. Come reindirizzare l'output di system() su un file?

Come utilizzare il comando head di Linux

Come usare il comando diff di Linux

Come eseguire il comando Sudo senza password

Come elencare il contenuto di un pacchetto in Linux

Come elencare i membri di un gruppo in Linux

Come aggiungere testo all'inizio del file in Linux