Lær Linux

Sådan finder og liste rekursivt filerne efter dato i Linux

Sådan finder og liste rekursivt filerne efter dato i Linux

Hovedårsagen til, at de fleste operativsystembrugere vælger Linux frem for andre operativsystemer, er friheden til at udforske. Med Linux er du bundet til nogle løst koblede operativsystemregler. Operativsystemet foruddefinerer nogle ændrede standardregler, der skal bruges i dets miljø.

Når du har kørt nybegynderens frakke af, kan du komme ud af disse standardregler og oprette din egen. Under Linux er operativsystemet din loyale tjener og dig mesteren.

Denne sag er ikke levedygtig i andre operativsystemfordelinger, da der er for mange abstraktioner på plads. Operativsystemerne her er mere af din assistent. Du kan aldrig have mere strøm end operativsystemet, som det er tilfældet med Linux. Når du fortsætter med at opbygge din brugeroplevelse under et Linux OS-miljø, vil din OS-nysgerrighed vokse dagligt. Du vil altid gerne vide, hvad der er skjult her, og hvad mere du kan gøre under paraplyen.

Arbejde med filer og mapper på Linux

Et perfekt tilfælde er din daglige interaktion med filer og mapper under Linux-operativsystemmiljøet. Der er mere ved at bruge Linux OS-filsystemet end bare at oprette, redigere, ændre og slette brugerfilsystemerne og -mapperne. Hver handling, der er knyttet til brugerfiler og mapper / mapper under et Linux-miljø, efterlader et brugerfodaftryk eller fingeraftryk. Det er som at gå ind i et rum for at røre ved og udveksle genstande.

Hvis en Linux-udlejer eller vicevært administrerer dette rum, du kom ind, ved den nøjagtigt, hvad du gjorde, og hvilke emner du rørte ved eller ombyttede. Linux har nyttige kommandoer til at hjælpe os med at opnå sådanne resultater. Du ved, hvad der skete med filerne og mapperne i dit Linux OS og identificerer disse handlinger baseret på hvornår de skete.

Kort sagt, når vi beskæftiger os med filer og kataloger under et Linux-operativsystemmiljø, kan vi oprette en begivenhedstidslinje til at identificere sårbare filændringer gennem tidsstempler, der er knyttet til hver ændring. Som en fordel ved du, om ændringen var forbundet med ondsindet indhold gennem de genererede systemlogfiler.

Linux-kommandoer, der skal bruges

Vi sender nogle enkle kommandoer for at hjælpe os med at forstå den objektive implikation af denne artikel. Du skal først starte din terminal og navigere i en systemsti, som du kender har mange filer og mappekataloger. For at være sikker og ikke lege med dine sårbare systemfiler kan du bruge din "Dokumenter" -mappe, der normalt er foruddefineret i Linux-operativsystemet. Den følgende kommando skal føre dig til denne "Dokumenter" -mappe.

$ cd ~ / Dokumenter

Det er et populært bibliotek med mange filer og underkataloger. En anden mappe, der skal bruges til denne artikelseksperiment, er mappen "Downloads". Det er et sted, du aldrig vil gå glip af downloadede filer og andre underkataloger.

$ cd ~ / Downloads

For at starte dette eksperiment har vi brug for noget relateret prøveoutput fra vores terminal. Vi indtaster en kommandostreng på vores terminal, der gør det muligt for os at liste aktive filer og deres tilknyttede underkataloger. Hvert element i det resulterende output fra denne kommando vil også være knyttet til et tidsstempel, der peger på det sidste ændringsforsøg på den tilknyttede fil, bibliotek eller underkatalog.

Kommandostrengen, der skal bruges, er som følger:

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

Skærmbilledet nedenfor er output til brug af ovenstående kommandostreng.

prøve output ved hjælp af find, sorter og cut kommando

Ud fra et analytisk synspunkt repræsenterer den nederste skærm af kommandooutputtet de for nylig modificerede emner i dit overordnede arbejdskatalog. Outputlisten kan være lang, afhængigt af de filer og mapper, du har på din maskine. Rulning op på outputterminalen afslører ældre filer og mappeændringer. Sammenfattende har vi en output, der rangerer de ældste filer og mappeændringer til de nyeste ændringer.

Som du har bemærket, har ovenstående kommandostreng, du har indsat på din terminal, tre vigtige kommandoargumenter. Vi er nødt til at forstå, hvad hver af dem gør.

Finde

Kommandoen "find" er den første til at udføre fra kommandostrengen. Det har det eneste mål at rekursivt angive de aktive filer og mapper i din forældres arbejdsmappe. Det ".”-Argument, der følger argumentet” find ”, peger denne kommando på den aktuelle arbejdsmappe. Hvis du ikke er sikker på den mappe, du er under; du kan indtaste kommandoen “pwd” på din terminal. Det udskriver stien til den mappe, du er i øjeblikket.

Det ".”Argumentet oversættes som output af kommandoen“ pwd ”. Det gør det nemmere at finde filerne og katalogerne til din nuværende arbejdsmappe. Det næste argument på kommandostrengen er “-printf”. Det er et flag til et udskrivningsargument. Det udskriver filerne og mapperne på din nuværende arbejdsmappe i et specificeret format. Det format, det tager, er specificeret af argumentet “% T @% t% p \ n”. Det er kommandoargumentet, der straks følger det.

'% T @' - delen af ​​dette argument repræsenterer epoketiden. Per definition er epoken tid eller Unix-epoken tidsstemplet den 1. januar 1970. Det er repræsenteret som 00:00:00 UTC. Outputtet på din terminal tager dette format til at repræsentere de modifikationsdatoer, der er knyttet til de anførte filer og mapper. '% T'-delen af ​​argumentet tager nu tidsperiode for at vise det seneste ændrings tidsstempel, der er knyttet til de anførte filer og mapper.

Afhængigt af din Linux-distro eller -smag viser terminaludgangen muligvis ikke den tidsperiode, der er knyttet til outputlisten med ændrede filer. Denne erklæring er et bevis på output fra min ende.

'% P'-delen af ​​argumentet udsender navnene på de viste filer i den aktuelle arbejdsmappe. Endelig tjener '/ n'-delen af ​​argumentet formålet med en newline-karakter. Efter hver på hinanden følgende liste over en ændret fil tager denne nye linjekarakter displaymarkøren og springer den næste filvisning til en ny linje på terminalskærmen. Det gør det lettere for os at tilknytte hver vist fil forskelligt.

En anden tilgang til at arbejde med den tidligere angivne kommandostreng er at erstatte '% t' delen af ​​"% T @% t% p \ n" argumentet med '% c'. Den resulterende kommandostreng skal se ud som følgende:

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

Outputtet ved at køre denne kommandostreng skal producere en output svarende til følgende skærmbillede.

ændring af argumenter på kommandoen find fil rekursivt

Overholdelse af ovenstående skærmbillede afslører nøje følgende observation. Outputlisten over filer i den aktuelle arbejdsmappe vises med en ”sidste statusændringstid” i stedet for ”ændringstid”. Det er effekten af ​​at erstatte '% c' med '% t' i "% T @% t% p \ n". Denne sidste kommando udskriver tilladelsesændringer, der er knyttet til den udgange filliste. Filernes indhold ændres muligvis ikke, men de tilknyttede metadata gør det.

På dette tidspunkt følger outputresultaterne ingen kronologisk rækkefølge, da vi endnu ikke skal adressere sorteringskommandoen. Ændringens tidsstempel udskrives først efterfulgt af navnet på den tilknyttede fil.

Sortere

Dette kommandoargument har tre parametre, nemlig '-k', '1' og 'n'. Sorteringskommandoen er ansvarlig for den rækkefølge, som fillistens output vises på vores skærme. I dette tilfælde udskrives ændringsdatoen først efterfulgt af filstien til den modificerede fil eller bibliotek. Den '-k' del af dette kommandoargument angiver startpositionen for at begynde sorteringsprocessen.

'-K'-delen af ​​sortkommandoargumentet har et spørgsmål besvaret med' 1'-delen af ​​det samme argument. I dette tilfælde starter sorteringsprocessen fra den første kolonne som angivet med '1'. Argumentet for sorteringskommando er også ansvarlig for, at den nyeste ændrede fil er nederst på listen og den ældste øverst. Argumentets '-n' del er ansvarlig for det numeriske tidspunkt med decimaltegnens præcision.

Hvis du bruger '-nr' i stedet for '-n', vil kommandostrengens output have de nyligt modificerede filer og mapper oven på terminaloutputtet og gamle filændringer nederst. Det vender terminaludgangens sorteringsrækkefølge.

Skære

Hovedformålet med "cut" -kommandoargumentet er at organisere output fra vores terminaludskrift på en pæn måde. Valgmulighederne '-d' og "i dette kommando kombinerer for at generere hvide mellemrum og derefter afskære filindholdsoplysningerne, der muligvis forsøger at få succes med disse hvide rum.

Med denne enkle kommandostreng kan du rekursivt udskrive filerne på din nuværende arbejdsmappe, hvor hver output forbinder de nævnte filer til deres ændringsdatoer.

Alternative kommandomuligheder

Du kan argumentere for, at kommandoen "ls -lrt" perfekt viser alle filerne i en aktiv biblioteksti på dit Linux-operativsystem, fra den ældste til at ændre til den nyeste. På den anden side betragter denne kommando ikke filindholdet, der findes i undermapper. Hvis notering af undermapper ikke er dit mål, kan du tilføje argumentet “-type f” til kommandostrengen. Overvej følgende ændring af kommandoen.

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

Brug af kommandoorgumentet “-type d” vil have en modsat virkning af ovenstående kommando. Din terminal sender kun modificerede mapper fra den ældste til den nyeste. Overvej dens implikation som følger:

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

Sidste note

Du er nu fortrolig med gennemgangen af ​​rekursivt udskrivning af filer og mapper i din nuværende arbejdsmappe med den ekstra viden om at vide, hvornår de sidst blev ændret baseret på deres tilknyttede tidsstempler.

Fra denne viden har du evnen til at komponere en tidslinje over begivenheder, der kronologisk afslører rækkefølgen af ​​filer og mapper, der ændres sammen med stien til deres lagerplacering.

Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...
Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...