GNU/Linux >> Linux Esercitazione >  >> Linux

Comando di ricerca di Linux, trova i 10 file più recenti in modo ricorsivo indipendentemente dall'intervallo di tempo

Mi è stato detto che questa è la soluzione:

find . -type f -printf "%[email protected] %p\n" | sort -rn | head -n 10

Il punto chiave è il printf %[email protected] segnaposto, che è il -ctime uno. L'ho trovato leggendo man find .

Risultato:

1336992789.0000000000 ./Mobilni Telefoni/05. iPhone/03. iPhone 4G Firmware/5.1.1/iPhone3,1_5.1.1_9B206_Restore.ipsw.filepart
1336928538.0000000000 ./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt
1336922295.0000000000 ./GPS Navigacije/01. Garmin/03. Garmin Other/garmin_kgen_15.exe
1336868365.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2152/E2152_XXJH4_OXFJI2.zip.filepart
1336867426.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E210/E210_XFGH2.rar
1336866301.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/FlashTool_E2_R6.zip
1336865921.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/E2330_OXFKE2.rar
1336865409.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_XXKC1_CDS.zip
1336865398.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_XXKC1_BIN.zip
1336864949.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_OXFKC1_CSC.zip

Per un elenco di file molto lungo, sort(1) con pipe potrebbe non essere ottimale per l'utilizzo delle risorse.

sort(1) potrebbe essere sostituito con perl(1) e bufferizza solo le dieci voci più alte. Questo è stato delineato in comando unix:come ottenere i primi n record per tre, qui un'adozione per dieci record.

Sostituisce il sort(1) e head(1) filtri:

find . -type f -printf "%[email protected] %p\n" | perl -ane '
    BEGIN {@top = ([-1]) x 10}
    if ($F[0] > $top[0][0]) {
        @top = sort {$a->[0] <=> $b->[0]} @top[1..9], [$F[0], $_];
    }
    END {print for reverse map {$_->[1]} @top}
'

Il risultato è identico.


Linux
  1. Trova file e directory su Linux con il comando find

  2. 5 strumenti da riga di comando per trovare rapidamente file in Linux

  3. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  4. Comando Linux:come "trovare" solo file di testo?

  5. I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?

Comando Rm in Linux

Comando Trova Linux con esempi pratici

Come trovare file con il comando fd in Linux

Come elencare i file in modo ricorsivo in Linux

Tutorial comando trova Linux (con esempi)

Come trovare le cartelle in Linux