GNU/Linux >> Znalost Linux >  >> Linux

Jak vypsat seznam N’th Youngest File (bez analýzy Ls!)?

Takže vím, že analýza ls je špatná!.

Dnes jsem našel tuto pecku:

FILENAME=`ls -t $READ_FOLDER | head -1`

Takže věřím, že to bylo původně navrženo tak, aby získalo nejnovější název souboru, ve skutečnosti to teď chci přizpůsobit, abych získal možná 5. nejnovější soubor, protože proces, který jej kontroluje, je trochu pomalý, a tak si nemůžeme být jisti, že byl ještě zpracován.

Pracuji v bash, ale také nejsem proti obecnému řešení sh.

Přijatá odpověď:

Můžete použít GNU find pro zobrazení seznamu souborů s upraveným časem vyjádřeným jako čas epochy, pak použijte sort pro setřídění seznamu nakonec head a tail pro získání požadovaného očíslovaného názvu souboru:

find . -maxdepth 1 -type f -printf '%[email protected] %pn' | sort -k1,1nr | head -5 | tail -1

Linux
  1. The Bash ‘?

  2. Jak odemknout soubor Rar uzamčený heslem, aniž byste znali heslo?

  3. Jak připojit výstup do souboru?

  1. Jak vypsat seznam závislostí balíčku v Linuxu

  2. Jak přesměrovat výstup system() do souboru?

  3. Jak odstranit soubor bez použití rm?

  1. Jak používat příkaz Tar v Linuxu

  2. Jak přidat nový řádek na konec souboru?

  3. Jak vypsat velikost každého souboru a adresáře a seřadit podle sestupné velikosti v Bash?