GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare il file più vecchio in un albero di directory in Linux

L'altro giorno un altro utente Linux mi ha chiesto come trovare il file più vecchio in una directory dalla riga di comando in Linux. Potremmo dire il file più vecchio in una directory usando la data e l'ora in modalità GUI. Ma non so come trovarlo dalla riga di comando. Fortunatamente, ho trovato questa soluzione dopo un po' di ricerche su Google. Se ti sei mai chiesto come trovare il file più vecchio in una directory o nell'intero file system, continua a leggere. Non è così difficile.

Trova il file più vecchio in un albero di directory in Linux

Per trovare il file più vecchio in una directory, ad esempio /home/sk/otechnix/ , esegui:

$ find /home/sk/ostechnix/ -type f -printf '%T+ %p\n' | sort | head -n 1

Analizziamo questo comando e vediamo cosa fa ogni argomento della riga di comando.

Ecco,

  • trova - Cerca i file in una gerarchia di directory.
  • /home/sk/otechnix/ - Cerca posizione.
  • digita -f - Cerca solo i file normali.
  • -printf '%T+ %p\n' - Stampa la data e l'ora dell'ultima modifica del file separate da + simbolo. (Es. 22-07-2015+13:42:40.0000000000). Qui, %p indica il nome del file. \n indica una nuova riga.
  • ordina | testa -n 1 - Il ordinamento comando ordina l'output e invia l'output a head comando per visualizzare il file più vecchio. Qui, -n 1 indica solo un file, ovvero il file più vecchio.

Come forse già saprai, Explainshell ti aiuta a trovare cosa fa ogni parte di un comando Linux.

Il comando precedente ha restituito il seguente output:

2015-07-22+13:42:40.0000000000 /home/sk/ostechnix/Absolute FreeBSD_ 2nd Edition.pdf

Come puoi vedere nell'output sopra, Absolute FreeBSD_ 2nd Edition.pdf è il file più vecchio in /home/sk/otechnix/ directory.

Tieni presente che Linux non trova il file più vecchio utilizzando la data di creazione del file. Utilizza invece la data di modifica del file per trovarlo.

Scarica - Cheat sheet gratuito:"Cheat sheet di Linux Command Line"

Allo stesso modo, per trovare i primi cinque file più vecchi in una determinata directory, esegui semplicemente:

$ find /home/sk/ostechnix/ -type f -printf '%T+ %p\n' | sort | head -n 5

Risultato di esempio:

2015-07-22+13:42:40.0000000000 /home/sk/ostechnix/Absolute FreeBSD_ 2nd Edition.pdf
2016-11-28+21:03:05.0000000000 /home/sk/ostechnix/Etcher-linux-x64.AppImage
2016-12-14+18:28:20.5162190000 /home/sk/ostechnix/ubuntu.jpg
2016-12-18+18:14:46.5931480000 /home/sk/ostechnix/Marconi Union - Sleepless.mp3
2017-03-17+19:28:27.8193330000 /home/sk/ostechnix/The Devops toolkit.pdf

Verrà visualizzato per primo il file più vecchio.

Per trovare il file più vecchio nell'intero file system radice (/), eseguire:

$ sudo find / -type f -printf '%T+ %p\n' | sort | head -n 1

Aggiornamento:

Un altro utente Linux ha indicato come trovare i file più vecchi o più recenti in una directory nella sezione commenti qui sotto. È molto più semplice del mio metodo.

Per scoprire il file più vecchio in una directory, vai in quella directory ed esegui:

$ ls -lt | tail -1

Per scoprire il file più recente in una directory:

$ ls -ltr | tail -1

Spero che questo sia stato utile.


Linux
  1. Come trovare un file in Linux

  2. Come trovare un file in Linux in tutte le directory in modo ricorsivo

  3. Come trovare il pacchetto che fornisce un file specifico in Linux

  4. Linux:come si controllano le informazioni sulla struttura delle directory di un file Unix/linux?

  5. Come reindirizzare i risultati di "trova" a mv in Linux

Come trovare una stringa in un file su Linux

Come trovare la dimensione di una directory in Linux

Autorizzazioni Linux:come trovare le autorizzazioni di un file

Come limitare la profondità dell'elenco di file ricorsivi in ​​Linux

Come trovare la dimensione totale di una directory in Linux

Il comando Trova Directory di Linux:spiegato