Naučte se Linux

Jak rekurzivně vyhledat a vypsat soubory podle data v Linuxu

Jak rekurzivně vyhledat a vypsat soubory podle data v Linuxu

Hlavním důvodem, proč většina uživatelů operačních systémů volí Linux před jinými operačními systémy, je svoboda zkoumání. S Linuxem jste vázáni na některá volně spojená pravidla operačního systému. OS předdefinuje některá proměnná standardní pravidla, která se mají používat v jeho prostředí.

Jakmile svléknete kabát pro začátečníky, můžete se z těchto výchozích pravidel dostat a vytvořit si vlastní. V systému Linux je operační systém vaším věrným služebníkem a vy pánem.

Tento případ není v jiných distribucích operačního systému životaschopný, protože existuje příliš mnoho abstrakcí. Operační systémy zde jsou spíše vaším asistentem. Nikdy nemůžete mít více energie než operační systém, jako v případě Linuxu. Jak budete pokračovat v budování své uživatelské zkušenosti v prostředí operačního systému Linux, bude vaše zvědavost OS každým dnem růst. Vždy budete chtít vědět, co se zde skrývá a co dalšího můžete pod jeho deštníkem udělat.

Práce se soubory a adresáři v systému Linux

Dokonalým scénářem je vaše každodenní interakce se soubory a složkami v prostředí operačního systému Linux. Používání souborového systému Linux OS znamená víc než jen vytváření, úpravy, úpravy a mazání uživatelských souborových systémů a složek. Každá akce spojená s uživatelskými soubory a složkami / adresáři v prostředí Linuxu zanechává stopu uživatele nebo otisk prstu. Je to jako chodit do místnosti, kde se můžete dotýkat a vyměňovat si předměty.

Pokud pronajímatel nebo správce systému Linux spravuje tuto místnost, do které jste vstoupili, bude přesně vědět, co jste udělali a kterých položek jste se dotkli nebo zaměnili. Linux má užitečné příkazy, které nám pomáhají dosáhnout těchto výsledků. Budete vědět, co se stalo se soubory a složkami ve vašem operačním systému Linux, a identifikovat tyto akce podle toho, kdy k nim došlo.

Stručně řečeno, při práci se soubory a adresáři v prostředí operačního systému Linux můžeme vytvořit časovou osu událostí, abychom identifikovali zranitelné úpravy souborů prostřednictvím časových značek připojených ke každé úpravě. Výhodou je, že prostřednictvím vygenerovaných systémových protokolů budete vědět, zda byla změna spojena se škodlivým obsahem.

Příkazy systému Linux, které se mají použít

Napíšeme několik jednoduchých příkazů, které nám pomohou porozumět objektivizované implikaci tohoto článku. Nejprve musíte spustit terminál a procházet systémovou cestu, o které víte, že obsahuje mnoho adresářů souborů a složek. Abyste byli v bezpečí a nehráli si se zranitelnými systémovými soubory, můžete použít adresář „Documents“, který je obvykle předdefinován v operačním systému Linux. Následující příkaz by vás měl dostat do tohoto adresáře „Dokumenty“.

$ cd ~ / Dokumenty

Je to oblíbený adresář s mnoha soubory a podadresáři. Dalším adresářem použitým pro tento experiment článku je adresář „Stahování“. Je to jedno místo, kde vám nikdy nebudou chybět stažené soubory a další podadresáře.

$ cd ~ / Stahování

Abychom zahájili tento experiment, potřebujeme nějaký relatabilní výstup vzorku z našeho terminálu. Na našem terminálu zadáme příkazový řetězec, který nám umožní vypsat aktivní soubory a jejich přidružené podadresáře. Každý prvek výsledného výstupu z tohoto příkazu bude také propojen s časovým razítkem, které ukazuje na poslední pokus o úpravu přidruženého souboru, adresáře nebo podadresáře.

Řetězec příkazu, který se má použít, je následující:

$ najít . -printf '% T @% t% p \ n' | sort -k 1 -n | cut -d "-f2-

Snímek obrazovky níže je výstupem pro použití výše uvedeného příkazového řetězce.

ukázkový výstup pomocí příkazu find, sort a cut

Z analytického hlediska představuje spodní obrazovka výstupu příkazu naposledy upravené položky ve vašem nadřazeném pracovním adresáři. Seznam výstupů může být dlouhý, v závislosti na souborech a složkách, které ve svém zařízení máte. Posunutí nahoru na výstupním terminálu odhalí starší soubory a úpravy složek. Stručně řečeno, máme výstup, který řadí nejstarší soubory a úpravy složek do nejnovějších úprav.

Jak jste si všimli, výše uvedený příkazový řetězec, který jste vložili do terminálu, má tři důležité argumenty příkazu. Musíme pochopit, co každý z nich dělá.

Nalézt

Příkaz „find“ je první, který se provede z příkazového řetězce. Jeho jediným cílem je rekurzivně vypsat aktivní soubory a adresáře ve vašem nadřazeném pracovním adresáři. „.Argument, který následuje za argumentem „find“, nasměruje tento příkaz na aktuální pracovní adresář. Pokud si nejste jisti adresářem, ve kterém se nacházíte; můžete zadat příkaz „pwd“ na svém terminálu. Vytiskne cestu k adresáři, ve kterém se aktuálně nacházíte.

„.Argument „je přeložen jako výstup příkazu„ pwd “. Usnadňuje vyhledání souborů a adresářů aktuálního pracovního adresáře. Další argument na příkazovém řetězci je „-printf“. Je to příznak pro tiskový argument. Vytiskne soubory a adresáře ve vašem aktuálním pracovním adresáři v zadaném formátu. Formát, který vyžaduje, je určen argumentem „% T @% t% p \ n“. Okamžitě za ním následuje argument příkazu.

Část '% T @' tohoto argumentu představuje epochální čas. Podle definice je epocha nebo unixová epocha časovým razítkem 1. ledna 1970. Představuje se jako 00:00:00 UTC. Výstup na vašem terminálu má tento formát, který představuje data úprav spojená s uvedenými soubory a adresáři. Část '% t' argumentu nyní trvá formát epochy času, aby se zobrazilo nejnovější časové razítko přidružené k uvedeným souborům a adresářům.

V závislosti na distribuci nebo verzi systému Linux nemusí výstup terminálu zobrazovat epochu spojenou s výstupním seznamem upravených souborů. Toto prohlášení je důkazem výstupu z mého konce.

Část argumentu '% p' ​​vypíše názvy zobrazených souborů v aktuálním pracovním adresáři. Nakonec část '/ n' argumentu slouží účelu znaku nového řádku. Po každém následném výpisu upraveného souboru přejde tento znak nového řádku kurzorem na displeji a přeskočí další zobrazení souboru na nový řádek na obrazovce terminálu. To nám usnadňuje přidružit každý zobrazený soubor jinak.

Dalším přístupem k práci s dříve uvedeným řetězcem příkazů je nahrazení části „% t“ argumentu „% T @% t% p \ n“ řetězcem „% c“. Výsledný příkazový řetězec by měl vypadat podobně jako následující:

$ najít . -printf '% T @% c% p \ n' | sort -k 1 -n | cut -d "-f2-

Výstup spuštěním tohoto příkazového řetězce by měl vytvořit výstup podobný následujícímu snímku obrazovky.

změna argumentů rekurzivně příkazu find file

Pozorování výše uvedeného snímku obrazovky horlivě odhaluje následující pozorování. Výstupní seznam souborů v aktuálním pracovním adresáři je zobrazen s „časem poslední změny stavu“ namísto „času úpravy“. Jedná se o efekt nahrazení '% c' za '% t' v “% T @% t% p \ n”. Tento poslední příkaz vytiskne změny oprávnění spojené se seznamem výstupních souborů. Obsah souborů se nemusí změnit, ale metadata s nimi spojená se mění.

V této fázi výstupní výsledky nenásledují žádné chronologické pořadí, protože ještě nemáme adresovat příkaz řazení. Nejprve se vytiskne časové razítko modifikace a poté název přidruženého souboru.

Třídit

Tento argument příkazu má tři parametry, jmenovitě '-k', '1' a 'n'. Příkaz sort je zodpovědný za pořadí, ve kterém se výstup seznamu souborů objeví na našich obrazovkách. V takovém případě se nejprve vytiskne datum úpravy a poté cesta k souboru k upravenému souboru nebo adresáři. Část „-k“ tohoto argumentu příkazu označuje počáteční pozici pro zahájení procesu třídění.

Část '-k' argumentu příkazu sort má otázku zodpovězenou částí '1' stejného argumentu. V tomto případě proces třídění začíná od prvního sloupce, jak je označeno číslicí „1“. Argument příkazu sort je také zodpovědný za to, že nejnovější upravený soubor je v dolní části seznamu a nejstarší v horní části. Část argumentu „-n“ odpovídá za časové číslo s přesností na desetinná místa.

Pokud použijete '-nr' místo '-n', výstup příkazového řetězce bude mít nově upravené soubory a adresáře v horní části terminálového výstupu a staré úpravy souborů v dolní části. Obrátí pořadí řazení terminálového výstupu.

Střih

Hlavním účelem argumentu příkazu „cut“ je uspořádat výstup našeho terminálového výtisku uklizeným způsobem. Kombinace voleb „-d“ a „tohoto argumentu příkazu generuje mezery a poté odřízne výtisk podrobností o obsahu souboru, který by se mohl pokusit tyto mezery nahradit.

S tímto jednoduchým příkazovým řetězcem můžete rekurzivně tisknout soubory ve vašem aktuálním pracovním adresáři, přičemž každý výstup spojuje uvedené soubory s jejich daty úprav.

Alternativní možnosti příkazu

Můžete namítnout, že příkaz „ls -lrt“ dokonale uvádí všechny soubory v rámci cesty k aktivnímu adresáři ve vašem operačním systému Linux, od nejstaršího po nejnovější po nejnovější. Na druhou stranu tento příkaz nezohledňuje obsah souboru existující v podsložkách. Pokud výpis podadresářů není vaším cílem, můžete do řetězce příkazu přidat argument „-type f“. Zvažte následující úpravu příkazu.

$ najít . -zadejte f -printf '% T @% t% p \ n' | sort -k 1 -n | cut -d "-f2-

Použití argumentu příkazu „-type d“ bude mít opačný účinek než výše uvedený příkaz. Váš terminál bude vydávat pouze upravené adresáře od nejstarších po nejnovější. Zvažte jeho důsledky takto:

$ najít . -zadejte d -printf '% T @% t% p \ n' | sort -k 1 -n | cut -d "-f2-

Závěrečná poznámka

Nyní jste obeznámeni s návodem rekurzivního tisku souborů a adresářů ve vašem aktuálním pracovním adresáři s dalšími znalostmi znalosti toho, kdy byly naposledy upraveny na základě jejich přidružených časových značek.

Z těchto znalostí máte schopnost skládat časovou osu událostí, která chronologicky odhalí pořadí úprav souborů a adresářů spolu s cestou k jejich úložnému místu.

Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...