GNU/Linux >> Znalost Linux >  >> Linux

Linux find příkaz, najít 10 nejnovějších souborů rekurzivně bez ohledu na časové rozpětí

Bylo mi řečeno, že toto je řešení:

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

Klíčovým bodem je printf %[email protected] zástupný symbol, což je -ctime jeden. Našel jsem to přečtením man find .

Výsledek:

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

Pro velmi velký seznam souborů sort(1) s rourami nemusí být optimální pro využití zdrojů.

sort(1) lze nahradit perl(1) a uložit pouze deset nejvyšších položek. To bylo nastíněno v příkazu unixu:jak získat top n záznamů za tři, zde adopce za deset desek.

Nahrazuje sort(1) a head(1) filtry:

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

Výsledek je stejný.


Linux
  1. 5 nástrojů příkazového řádku pro rychlé vyhledání souborů v systému Linux

  2. 25 Užitečné hledání Příkaz Praktické příklady v Linuxu

  3. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  1. Najděte soubory a adresáře v Linuxu pomocí příkazu find

  2. Najděte čas provedení příkazu nebo procesu v systému Linux

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?

  1. Jak najít soubory pomocí příkazu fd v Linuxu

  2. Jak používat Linuxový příkaz find k hledání souborů

  3. Příkaz Linux:Jak „najít“ pouze textové soubory?