Lær Linux

Hvordan rekursivt finne og liste opp filene etter dato i Linux

Hvordan rekursivt finne og liste opp filene etter dato i Linux

Hovedårsaken til at de fleste operativsystembrukere velger Linux fremfor andre operativsystemer, er friheten til å utforske. Med Linux er du bundet til noen løst koblede regler for operativsystemet. Operativsystemet definerer noen endrede standardregler som skal brukes i omgivelsene.

Når du har kastet av deg nybegynnerfrakken, kan du komme deg ut av disse standardreglene og lage din egen. Under Linux er operativsystemet din lojale tjener og du mesteren.

Denne saken er ikke levedyktig i andre operativsystemdistribusjoner, da det er for mange abstraksjoner på plass. Operativsystemene her er mer av assistenten din. Du kan aldri ha mer kraft enn operativsystemet, som med tilfellet Linux. Når du fortsetter å bygge din brukeropplevelse under et Linux OS-miljø, vil OS-nysgjerrigheten din vokse daglig. Du vil alltid vite hva som er skjult her og hva mer du kan gjøre under paraplyen.

Arbeider med filer og kataloger på Linux

Et perfekt case scenario er din daglige interaksjon med filer og mapper under Linux-operativsystemmiljøet. Det er mer å bruke Linux OS-filsystemet enn bare å opprette, redigere, endre og slette brukerfilsystemene og -mappene. Hver handling som er knyttet til brukerfilene og mappene / katalogene under et Linux-miljø, etterlater et brukeravtrykk eller fingeravtrykk. Det er som å gå inn i et rom for å berøre og bytte ting.

Hvis en Linux-utleier eller vaktmester administrerer dette rommet du kom inn på, vil den vite nøyaktig hva du gjorde og hvilke ting du rørte ved eller byttet ut. Linux har nyttige kommandoer for å hjelpe oss med å oppnå slike resultater. Du vil vite hva som skjedde med filene og mappene i Linux OS og identifisere disse handlingene basert på når de skjedde.

Kort sagt, når vi arbeider med filer og kataloger i et Linux-operativsystemmiljø, kan vi bygge en tidslinje for hendelser for å identifisere sårbare filendringer gjennom tidsstempler som er knyttet til hver modifikasjon. Som en fordel vil du vite om endringen var assosiert med skadelig innhold gjennom de genererte systemloggene.

Linux-kommandoer å bruke

Vi vil gi noen enkle kommandoer for å hjelpe oss med å forstå den objektive implikasjonen av denne artikkelen. Du må først starte terminalen og navigere i en systembane som du vet har mange filer og mappekataloger. For å være trygg og ikke leke med dine sårbare systemfiler, kan du bruke katalogen "Dokumenter" som vanligvis er forhåndsdefinert i Linux-operativsystemet. Følgende kommando skal føre deg til denne "Dokumenter" -katalogen.

$ cd ~ / Dokumenter

Det er en populær katalog med mange filer og underkataloger. En annen katalog som skal brukes til denne artikkelen, er katalogen "Nedlastinger". Det er ett sted du aldri vil savne nedlastede filer og andre underkataloger.

$ cd ~ / Nedlastinger

For å starte dette eksperimentet, trenger vi noen relaterte eksemplarer fra terminalen vår. Vi taster inn en kommandostreng på terminalen vår som gjør det mulig for oss å liste aktive filer og deres tilknyttede underkataloger. Hvert element i den resulterende utgangen fra denne kommandoen vil også bli koblet til et tidsstempel som peker på det siste modifikasjonsforsøket på den tilknyttede filen, katalogen eller underkatalogen.

Kommandostrengen som skal brukes er som følger:

$ finne . -printf '% T @% t% p \ n' | sorter -k 1 -n | kutt -d "-f2-

Skjermbildet nedenfor er utdata for bruk av kommandostrengen ovenfor.

prøve utdata ved å bruke kommandoen finn, sorter og kutt

Fra et analytisk synspunkt representerer den nederste skjermen på kommandoutgangen de nylig modifiserte elementene i den overordnede arbeidskatalogen. Utgangslisten kan være lang, avhengig av filene og mappene du har på maskinen din. Å rulle opp på utgangsterminalen avslører eldre filer og mappeendringer. Oppsummert har vi en utgang som rangerer de eldste filene og mappeendringene til de nyeste endringene.

Som du har lagt merke til, har kommandostrengen ovenfor du limte inn på terminalen, tre viktige kommandoargumenter. Vi må forstå hva hver av dem gjør.

Finne

"Finn" -kommandoen er den første som kjøres fra kommandostrengen. Det har det eneste målet å rekursivt føre opp de aktive filene og katalogene i foreldrekatalogen. “.”Argument som følger“ finn ”argumentet peker denne kommandoen til gjeldende arbeidskatalog. Hvis du ikke er sikker på katalogen du er under; du kan skrive inn "pwd" -kommandoen på terminalen din. Det vil skrive ut banen til katalogen du er under.

“.”Argument blir oversatt som utdata fra kommandoen“ pwd ”. Det gjør det lettere å finne filene og katalogene til din nåværende arbeidskatalog. Neste argument på kommandostrengen er “-printf”. Det er et flagg for et utskriftsargument. Den skriver ut filene og katalogene på din nåværende arbeidskatalog i et spesifisert format. Formatet det tar er spesifisert av argumentet “% T @% t% p \ n”. Det er kommandoargumentet som umiddelbart følger det.

'% T @' - delen av dette argumentet representerer epoketiden. Per definisjon er epoketid eller Unix-epoke tidsstemplet 1. januar 1970. Det er representert som 00:00:00 UTC. Utgangen på terminalen tar dette formatet for å representere endringsdatoene knyttet til de oppførte filene og katalogene. '% T'-delen av argumentet tar nå tidsperioden for å vise det siste modifikasjons tidsstempelet assosiert med de oppførte filene og katalogene.

Avhengig av Linux-distro eller smak, kan det hende at terminalutgangen ikke viser epoketiden assosiert med utgangslisten med modifiserte filer. Denne uttalelsen er bevis på resultatet fra slutten min.

'% P'-delen av argumentet sender ut navnene på de viste filene i den aktuelle arbeidskatalogen. Til slutt tjener '/ n' delen av argumentet formålet med en ny linje karakter. Etter hver påfølgende oppføring av en modifisert fil, tar dette nye linjetegnet skjermmarkøren og hopper over neste filvisning til en ny linje på terminalskjermen. Det gjør det lettere for oss å knytte hver fil som vises forskjellig.

En annen tilnærming til å jobbe med den tidligere oppgitte kommandostrengen er å erstatte '% t' delen av "% T @% t% p \ n" argumentet med '% c'. Den resulterende kommandostrengen skal se ut som følgende:

$ finne . -printf '% T @% c% p \ n' | sorter -k 1 -n | kutt -d "-f2-

Resultatet av å kjøre denne kommandostrengen skal produsere en utdata som ligner på følgende skjermbilde.

endre argumenter på finn fil rekursivt kommando

Å observere skjermbildet ovenfor avslører nøye følgende observasjon. Utgangslisten over filer i gjeldende arbeidskatalog vises med en "siste statusendringstid" i stedet for "modifiseringstid". Det er effekten av å erstatte '% c' med '% t' i "% T @% t% p \ n". Denne siste kommandoen skriver ut tillatelsesendringer knyttet til den utliste fillisten. Filenes innhold endres kanskje ikke, men metadataene som er knyttet til dem gjør det.

På dette stadiet følger ikke resultatene noen kronologisk rekkefølge, ettersom vi ennå ikke skal adressere sorteringskommandoen. Modifikasjonstidstemplet skrives først ut, etterfulgt av navnet på den tilknyttede filen.

Sortere

Dette kommandoargumentet har tre parametere, nemlig '-k', '1' og 'n'. Sorteringskommandoen er ansvarlig for rekkefølgen som fillisten vises på skjermene våre. I dette tilfellet skrives ut endringsdatoen først, etterfulgt av filbanen til den modifiserte filen eller katalogen. '-K' -delen av dette kommandoargumentet indikerer startposisjonen for å starte sorteringsprosessen.

'-K' -delen av sortkommandoargumentet har et spørsmål besvart av '1' -delen av det samme argumentet. I dette tilfellet starter sorteringsprosessen fra den første kolonnen som indikert med '1'. Argumentet for sorteringskommando er også ansvarlig for at den nyeste modifiserte filen er nederst på listen og den eldste øverst. '-N' delen av argumentet er ansvarlig for det numeriske tidspunktet med desimalpoeng presisjon.

Hvis du bruker '-nr' i stedet for '-n', vil kommandostrengens utgang ha de nylig modifiserte filene og katalogene på toppen av terminalutgangen og gamle filendringer nederst. Den reverserer sorteringsrekkefølgen for terminalutgangen.

Kutte opp

Hovedformålet med "klipp" -kommandoargumentet er å organisere utgangen av terminalutskriften på en ryddig måte. Alternativene '-d' og "i dette kommandoargumentet kombinerer for å generere hvite mellomrom og kutte deretter ut filinnholdsutskriftene som kan prøve å lykkes med disse hvite områdene.

Med denne enkle kommandostrengen kan du rekursivt skrive ut filene på din nåværende arbeidskatalog, med hver utgang som knytter de nevnte filene til deres modifikasjonsdatoer.

Alternative kommandoalternativer

Du kan hevde at kommandoen "ls -lrt" perfekt viser alle filene i en aktiv katalogbane på Linux-operativsystemet, fra den eldste til å modifisere til den nyeste. På den annen side tar ikke denne kommandoen hensyn til filinnholdet som finnes i undermapper. Hvis ikke oppføring av underkataloger er ditt mål, kan du legge til argumentet “-type f” i kommandostrengen. Vurder følgende modifikasjon av kommandoen.

$ finne . -skriv f -printf '% T @% t% p \ n' | sorter -k 1 -n | kutt -d "-f2-

Å bruke kommandoorgumentet “-type d” vil ha en motsatt effekt av kommandoen ovenfor. Terminalen din vil bare sende modifiserte kataloger fra den eldste til den nyeste. Vurder implikasjonen som følger:

$ finne . -skriv d -printf '% T @% t% p \ n' | sorter -k 1 -n | kutt -d "-f2-

Endelig merknad

Du er nå kjent med gjennomgangen av rekursivt utskrift av filer og kataloger i din nåværende arbeidskatalog med ytterligere kunnskap om å vite når de sist ble endret basert på deres tilknyttede tidsstempler.

Fra denne kunnskapen har du muligheten til å komponere en tidslinje over hendelser som kronologisk avslører rekkefølgen på filer og kataloger som endres sammen med banen til lagringsplassen.

Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...
Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...
Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...