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 – Lxc; Nasazení obrázků pomocí nejmenšího možného X11?
Je možné spustit „unshare -n [program]“ jako neprivilegovaný uživatel?