Naučite Linux

Kako rekurzivno pronaći i popisati datoteke prema datumu u Linuxu

Kako rekurzivno pronaći i popisati datoteke prema datumu u Linuxu

Glavni razlog zašto većina korisnika operativnog sustava bira Linux umjesto ostalih operativnih sustava je sloboda istraživanja. S Linuxom ste vezani uz neka slabo povezana pravila operativnog sustava. OS unaprijed definira neka promjenjiva standardna pravila koja će se koristiti u njegovom okruženju.

Nakon što skinete početnički kaput, možete izaći iz ovih zadanih pravila i stvoriti svoj vlastiti. U Linuxu je operativni sustav vaš odani sluga, a vi gospodar.

Ovaj slučaj nije održiv u drugim distribucijama operativnog sustava jer postoji previše apstrakcija. Ovdje su operativni sustavi više vaš pomoćnik. Nikada ne možete imati veću snagu od operativnog sustava, kao u slučaju Linuxa. Kako nastavljate graditi svoje korisničko iskustvo u Linux OS okruženju, vaša će znatiželja svakodnevno rasti. Uvijek ćete željeti znati što se ovdje krije i što još možete učiniti pod njegovim kišobranom.

Rad s datotekama i direktorijima na Linuxu

Savršen slučaj je vaša svakodnevna interakcija s datotekama i mapama u okruženju Linux operativnog sustava. Korištenje datotečnog sustava Linux OS više je od samog stvaranja, uređivanja, mijenjanja i brisanja korisničkih datotečnih sustava i mapa. Svaka radnja povezana s korisničkim datotekama i mapama / direktorijima u Linux okruženju ostavlja korisnički trag ili otisak prsta. To je poput ulaska u sobu da biste dodirnuli i razmijenili predmete.

Ako stanodavac ili skrbnik Linuxa upravlja ovom sobom u koju ste ušli, on će točno znati što ste učinili i koje ste predmete dodirnuli ili zamijenili. Linux ima korisne naredbe koje nam pomažu u postizanju takvih rezultata. Znat ćete što se dogodilo s datotekama i mapama u vašem Linux OS-u i identificirati ove radnje na temelju kada su se dogodile.

Ukratko, kada se bavimo datotekama i direktorijima u okruženju Linux operativnog sustava, možemo izgraditi vremensku traku događaja kako bismo identificirali ranjive izmjene datoteka putem vremenskih žigova pridruženih svakoj modifikaciji. Kao prednost ćete znati je li izmjena povezana s zlonamjernim sadržajem putem generiranih sistemskih dnevnika.

Linux naredbe za upotrebu

Sastavit ćemo neke jednostavne naredbe koje će nam pomoći da razumijemo objektivizirane implikacije ovog članka. Prvo trebate pokrenuti terminal i kretati se sistemskom stazom za koju znate da ima mnogo datoteka i direktorija mapa. Da biste bili sigurni i ne poigravali se sa svojim ranjivim sistemskim datotekama, mogli biste koristiti svoj direktorij „Dokumenti“ koji je obično unaprijed definiran u operacijskom sustavu Linux. Sljedeća naredba trebala bi vas dovesti do ovog direktorija „Dokumenti“.

$ cd ~ / Dokumenti

Popularan je direktorij s mnogim datotekama i poddirektorijima. Još jedan direktorij koji ćete koristiti za eksperiment s ovim člankom je direktorij "Preuzimanja". To je jedno mjesto na kojem nikada nećete propustiti preuzete datoteke i druge podmape.

$ cd ~ / Preuzimanja

Da bismo započeli ovaj eksperiment, trebamo nekoliko relativnih uzoraka s našeg terminala. Utipkat ćemo naredbeni niz na našem terminalu koji će nam omogućiti popis aktivnih datoteka i njihovih povezanih poddirektorijuma. Također, svaki element rezultirajućeg izlaza iz ove naredbe bit će povezan s vremenskom oznakom koja upućuje na zadnji pokušaj izmjene povezane datoteke, direktorija ili poddirektorijuma.

Niz naredbi koji se koristi je sljedeći:

$ pronađi . -printf '% T @% t% p \ n' | razvrstaj -k 1 -n | izrezati -d "-f2-

Snimak zaslona u nastavku je izlaz za upotrebu gornjeg niza naredbi.

uzorak rezultata korištenja naredbe pronađi, sortiraj i izreži

S analitičkog gledišta, donji zaslon izlaza naredbe predstavlja nedavno izmijenjene stavke u vašem nadređenom radnom direktoriju. Popis izlaza može biti dugačak, ovisno o datotekama i mapama koje imate na uređaju. Pomicanjem prema gore na izlaznom terminalu otkrivaju se starije datoteke i izmjene mapa. Ukratko, imamo izlaz koji rangira najstarije datoteke i preinake mapa prema najnovijim izmjenama.

Kao što ste primijetili, gornji naredbeni niz koji ste zalijepili na terminal ima tri važna naredbena argumenta. Moramo razumjeti što svaki od njih radi.

Pronaći

Naredba "pronađi" prva je koja se izvršava iz niza naredbi. Jedini je cilj rekurzivno navođenje aktivnih datoteka i direktorija u vašem roditeljskom radnom direktoriju. ".Argument koji slijedi argument "pronađi" usmjerava ovu naredbu na trenutni radni direktorij. Ako niste sigurni u direktorij u kojem se nalazite; možete unijeti naredbu "pwd" na vašem terminalu. Ispisat će put do direktorija u kojem se trenutno nalazite.

".Argument “preveden je kao izlaz naredbe“ pwd ”. Olakšava pronalaženje datoteka i direktorija vašeg trenutnog radnog imenika. Sljedeći argument na naredbenom nizu je “-printf”. To je zastava za ispisni argument. Ispisuje datoteke i direktorije na vašem trenutnom radnom direktoriju u određenom formatu. Format koji je potreban naveden je argumentom "% T @% t% p \ n". To je naredbeni argument koji odmah slijedi.

Dio ovog argumenta '% T @' predstavlja vrijeme epohe. Prema definiciji, epoha ili Unix epoha vremenska su oznaka 1. siječnja 1970. Prikazuje se kao 00:00:00 UTC. Izlaz na vašem terminalu uzima ovaj format za predstavljanje datuma izmjena povezanih s navedenim datotekama i direktorijima. Dio argumenta '% t' sada uzima format vremena epohe za prikaz najnovije vremenske oznake izmjene povezane s navedenim datotekama i direktorijima.

Ovisno o vašoj Linux distribuciji ili okusu, izlaz terminala možda neće prikazivati ​​vrijeme epohe povezano s izlaznim popisom modificiranih datoteka. Ova je izjava dokaz rezultata mog kraja.

Dio argumenta '% p' ​​daje imena prikazanih datoteka u tom trenutnom radnom direktoriju. Napokon, dio argumenta '/ n' služi u svrhu znaka novog retka. Nakon svakog uzastopnog popisa izmijenjene datoteke, ovaj znak novog retka uzima pokazivač zaslona i preskače sljedeći prikaz datoteke u novi redak na zaslonu terminala. Olakšava nam povezivanje svake prikazane datoteke na drugačiji način.

Sljedeći pristup radu s ranije navedenim nizom naredbi je zamjena dijela '% t' argumenta "% T @% t% p \ n" s "% c". Rezultirajući naredbeni niz trebao bi izgledati slično sljedećem:

$ pronađi . -printf '% T @% c% p \ n' | razvrstaj -k 1 -n | izrezati -d "-f2-

Rezultat izvođenja ovog naredbenog niza trebao bi proizvesti izlaz sličan sljedećem snimku zaslona.

promjena argumenata na datoteci find rekurzivno naredba

Oštro promatranje gornjeg zaslona otkriva sljedeće zapažanje. Popis izlaza datoteka u trenutnom radnom direktoriju prikazuje se s "vremenom zadnje promjene statusa" umjesto "vremenom izmjene". To je učinak zamjene "% c" s "% t" u "% T @% t% p \ n". Ova zadnja naredba ispisuje promjene dopuštenja povezane s izlaznim popisom datoteka. Sadržaj datoteka možda se neće promijeniti, ali metapodaci povezani s njima jesu.

U ovoj fazi, izlazni rezultati ne slijede nikakav kronološki redoslijed jer još trebamo uputiti naredbu za sortiranje. Prvo se ispisuje vremenska oznaka izmjene, a zatim ime pridružene datoteke.

Vrsta

Ovaj argument naredbe ima tri parametra, i to '-k', '1' i 'n'. Naredba za sortiranje odgovorna je za redoslijed prikazivanja popisa datoteka na našim ekranima. U tom se slučaju prvo ispisuje datum izmjene, a zatim put datoteke do izmijenjene datoteke ili direktorija. Dio '-k' ovog naredbenog argumenta označava početni položaj za početak postupka sortiranja.

Dio '-k' argumenta naredbe sort sadrži pitanje na koje odgovara dio '1' istog argumenta. U ovom slučaju, postupak sortiranja započinje od prvog stupca kako je označeno s '1'. Argument naredbe sort također je odgovoran za to da je najnovija izmijenjena datoteka na dnu popisa, a najstarija na vrhu. Dio argumenta '-n' odgovoran je za broj vremena s preciznošću u decimalnim zarezima.

Ako koristite '-nr' umjesto '-n', izlaz naredbenog niza imat će novoizmijenjene datoteke i direktorije na vrhu izlaza terminala, a stare izmjene datoteka na dnu. Obrne redoslijed sortiranja izlaza terminala.

Izrezati

Glavna svrha argumenta naredbe "cut" je uredno organizirati izlaz našeg ispisa na terminalu. Opcije '-d' i "ovog naredbenog argumenta kombiniraju se kako bi generirali razmake, a zatim odsjekli ispis detalja o sadržaju datoteke koji bi mogao pokušati naslijediti te razmake.

Ovim jednostavnim naredbenim nizom možete rekurzivno ispisati datoteke na vašem trenutnom radnom direktoriju, a svaki izlaz povezuje spomenute datoteke s datumima njihovih izmjena.

Alternativne opcije naredbi

Mogli biste tvrditi da naredba "ls -lrt" savršeno navodi sve datoteke unutar aktivne staze direktorija na vašem Linux operativnom sustavu, od najstarije do modificirane do najnovije. S druge strane, ova naredba ne uzima u obzir sadržaj datoteke koji postoji u podmapama. Ako vam nije cilj navođenje poddirektorijuma, u naredbeni niz možete dodati argument “-type f”. Razmotrite sljedeću izmjenu naredbe.

$ pronađi . -upišite f -printf '% T @% t% p \ n' | razvrstaj -k 1 -n | izrezati -d "-f2-

Korištenje argumenta naredbe "-type d" imat će učinak suprotan gornjoj naredbi. Vaš će terminal izlaziti samo izmijenjene direktorije od najstarijih do najnovijih. Razmotrite njegove implikacije kako slijedi:

$ pronađi . -upišite d -printf '% T @% t% p \ n' | razvrstaj -k 1 -n | izrezati -d "-f2-

Završna bilješka

Sada ste upoznati s korakom rekurzivnog ispisa datoteka i direktorija na vašem trenutnom radnom direktorijumu s dodatnim znanjem o tome kada su zadnji put promijenjeni na temelju pripadajućih vremenskih oznaka.

Iz tog znanja imate sposobnost sastavljanja vremenske trake događaja koja kronološki otkriva redoslijed izmjena datoteka i direktorija zajedno s putem do njihovog mjesta pohrane.

Instalirajte najnoviji Dolphin Emulator za Gamecube i Wii na Linux
Dolphin Emulator omogućuje vam igranje odabranih Gamecube i Wii igara na Linux osobnim računalima (PC). Dolphin Emulator je slobodno dostupan i emula...
Kako koristiti GameConqueror Cheat Engine u Linuxu
Članak pokriva vodič o korištenju GameConqueror varalice u Linuxu. Mnogi korisnici koji igraju igre na sustavu Windows često koriste aplikaciju "Cheat...
Najbolji emulatori igraće konzole za Linux
Ovaj će članak navesti popularni softver za emulaciju igraće konzole dostupan za Linux. Emulacija je sloj kompatibilnosti softvera koji oponaša hardve...