Příkaz find v Linuxu se používá k hledání souborů a složky na základě různých parametrů. Tyto parametry mohou být název souboru , velikost , typ souboru , atd.
[ Také by se vám mohlo líbit:Jak najít soubory obsahující konkrétní textový řetězec v Linuxu ]
Jedním z takových parametrů je časové razítko souboru. V Linuxu (a všech souborových systémech založených na Unixu) existují 3 časová razítka udržované pro každý soubor:
- Čas poslední úpravy
- Čas posledního přístupu
- Čas poslední změny stavu (tj. když se změní metadata souboru, jako jsou oprávnění)
Podívejme se, jak používat najít vyhledávat soubory na základě každého z těchto časových razítek .
Najděte časová razítka souborů v systému Linux
Nejprve můžeme spustit ‘stat ‘ příkaz v Linuxu pro získání všech těchto časových razítek pro soubor. Například pro soubor s názvem ‚stat ‘, spustit:
$ stat tmp
Najít soubory podle časového razítka
Nyní k vyhledání souborů podle časového razítka , použijeme argument '-newerXY'
z hledání z manuálové stránky.
man find
Tedy v argumentu '-newerXY'
, můžeme mít X jako a , c nebo m , respektive pro poslední přístup, poslední změnu stavu a časy poslední úpravy a Y jako t , abychom mohli mít jako další argument časové razítko řetězec.
Poznámka :Čas narození, tj. čas vytvoření souboru, není v Unixu zachován založené souborové systémy
Abychom to zobecnili, příkaz, který se má spustit, vypadá takto:
find <directory_path> -newer<a/m/c>t ‘<timestamp>’
Zde je formát časového razítka by mělo být:‘RRRR-MM-DD HH:MM:SS‘ .
Zkusme to na složce s několika soubory a pouze dvěma soubory, které byly po určité době zpřístupněny, upraveny a jejich stav se změnil.
find . -newerat ‘2021-02-19 06:34’ find . -newerct ‘2021-02-19 06:34’ find . -newermt ‘2021-02-19 06:34’
Ověřte pomocí ‘stat’ pokud časová razítka z obou souborů jsou skutečně delší než zadaný čas.
stat tmp2 tmp3
Závěr
Naučili jsme se používat '-newerXY'
argument příkazu najít pro vyhledávání souborů podle časového razítka .
Pro referenční časové razítko můžete také použít jiný soubor místo explicitního zadání časového razítka , v takovém případě ‘t‘ z argumentu lze přeskočit.
Děkujeme za přečtení a dejte nám vědět své myšlenky v komentářích níže!