Často nastávají situace, kdy potřebujete zobrazit nedávno vytvořené, nové soubory v operačním systému. Často to potřebuje správce systému, který vytvořil konfigurační soubor a pak jednoduše zapomněl, kde byl uložen. Potřeba vyhledat nové soubory může vzniknout také proto, že potřebujete zjistit, zda se soubor nedávno změnil, nebo ne. Obecně mohou být situace velmi různé. Výhodou operačního systému Linux je, že tradičně nabízí několik způsobů, jak určitý problém vyřešit.
Nejjednodušším a nejběžnějším způsobem, jak v Linuxu najít nové soubory, je nástroj Najít
. V závislosti na aktuálních potřebách se mu předávají různé parametry, například můžete vyhledávat soubory pouze v určitém rozmezí kalendářních měsíců nebo dnů, podrobnosti o tom, jak to lze provést, najdete níže.
Soubory se zobrazují v adresářích a podadresářích a jsou seřazeny:
$ find /etc -type f -printf '%TY-%Tm-%Td %TT %p ' | sort –r
Jak ale vidíte, výsledek je poměrně působivý, nové soubory není možné z celého seznamu rozpoznat. Proto musíme použít jiný příkaz:
$ find /etc -type f -mmin -120
Tímto příkazem určíme, že se v systému mají hledat pouze soubory, které byly vytvořeny během poslední hodiny.
Pokud je třeba pokrýt poslední dva dny, zadejte následující příkaz:
$ find /etc -type f -mtime -2
Někdy není potřeba hlouběji pronikat do podadresářů třetí úrovně, proto pro vyloučení této akce musíme použít speciální volbu maxdepth
:
$ find /etc -maxdepth 3 -mtime -2 -type f
Můžeme zobrazit všechny nové soubory vytvořené v systému Linux za posledních sedm dní, ale s tím, že poslední tři dny by neměly být brány v úvahu:
$ find /etc -type f -mtime -7 ! -mtime -3
Tyto příkazy vypíší cestu k souboru, ale pro zobrazení atributů musíme použít speciální volbu --exec
. Dále vypíšeme atributy každého nového souboru pomocí nástroje ls
:
$ find /etc -type f -mmin -120 -exec ls -al {} ;
Pokud se vám tento příkaz zdá příliš nepřehledný a složitý, můžete použít jiný:
$ find /etc -type f -mmin -120 | xargs ls -l
Zde již použijeme jiný nástroj, xargs
. Nástroj find také umožňuje najít soubory novější než konkrétní soubor. Vytvořme například referenční soubor:
$ touch /tmp/test
Nyní vyhledáme všechny novější soubory v kořenovém adresáři, které byly vytvořeny po něm:
$ find / -type f -newer /tmp/test
Přejděme k další metodě.
Tato metoda vyhledávání nových souborů je mnohem jednodušší než předchozí, takže ji lze doporučit linuxovým začátečníkům. Příkaz ls
umí také seřadit soubory v adresáři podle data vytvoření. K tomu nám stačí spustit příkaz ls:
$ ls -ltr
Souborů může být příliš mnoho, proto je vhodné spustit i tento příkaz:
$ ls -ltr | tail
To nejsou všechny způsoby vyhledávání nových souborů, ale stačí k rychlému a efektivnímu provedení práce. Jak vidíte, základní vyhledávací příkazy find a ls mohou být ještě flexibilnější, pokud je zkombinujete s příkazy sort, tail
a grep
.