Onehdy se mě jiný uživatel Linuxu zeptal, jak najít nejstarší soubor v adresáři z příkazového řádku v Linuxu. Nejstarší soubor v adresáři bychom mohli zjistit pomocí razítek data a času v režimu GUI. Ale nevím, jak to najít z příkazového řádku. Naštěstí jsem našel toto řešení po chvilce hrabání v googlu. Pokud jste někdy přemýšleli, jak najít nejstarší soubor v adresáři nebo v celém souborovém systému, čtěte dále. Není to tak těžké.
Najděte nejstarší soubor ve stromu adresářů v Linuxu
Chcete-li najít nejstarší soubor v adresáři, například /home/sk/ostechnix/ , spustit:
$ find /home/sk/ostechnix/ -type f -printf '%T+ %p\n' | sort | head -n 1
Pojďme si tento příkaz rozebrat a uvidíme, co dělá každý argument příkazového řádku.
Tady,
- najít - Hledat soubory v hierarchii adresářů.
- /home/sk/ostechnix/ - Vyhledat místo.
- typ -f - Prohledává pouze běžné soubory.
- -printf '%T+ %p\n' – Vytiskne datum a čas poslední úpravy souboru oddělené znakem + symbol. (Např. 2015-07-22+13:42:40.0000000000). Zde, %p označuje název souboru. \n označuje nový řádek.
- řadit | hlava -n 1 – Řazení příkaz seřadí výstup a odešle výstup do head příkaz pro zobrazení nejstaršího souboru. Zde -n 1 označuje pouze jeden soubor, tj. nejstarší soubor.
Jak už možná víte, Explainshell vám pomůže zjistit, co každá část příkazu Linuxu dělá.
Výše uvedený příkaz vrátil následující výstup:
2015-07-22+13:42:40.0000000000 /home/sk/ostechnix/Absolute FreeBSD_ 2nd Edition.pdf
Jak vidíte ve výše uvedeném výstupu, Absolute FreeBSD_ 2nd Edition.pdf je nejstarší soubor v /home/sk/ostechnix/ adresář.
Upozorňujeme, že Linux nenajde nejstarší soubor podle data vytvoření souboru. Místo toho používá datum změny souboru najít.
Stáhnout - Zdarma Cheat Sheet:"Linux Command Line Cheat Sheet"Podobně, chcete-li najít prvních pět nejstarších souborů v daném adresáři, stačí spustit:
$ find /home/sk/ostechnix/ -type f -printf '%T+ %p\n' | sort | head -n 5
Ukázkový výstup:
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
Nejdříve se zobrazí nejstarší soubor.
Chcete-li najít nejstarší soubor v celém kořenovém (/) systému souborů, spusťte:
$ sudo find / -type f -printf '%T+ %p\n' | sort | head -n 1
Aktualizace:
Kolega uživatel Linuxu poukázal na to, jak najít nejstarší nebo nejnovější soubory v adresáři v sekci komentářů níže. Je to mnohem jednodušší než moje metoda.
Chcete-li zjistit nejstarší soubor v adresáři, přejděte do tohoto adresáře a spusťte:
$ ls -lt | tail -1
Chcete-li zjistit nejnovější soubor v adresáři:
$ ls -ltr | tail -1
Doufám, že to bylo užitečné.