11 måter å liste og sortere filer på Linux

det er mange måter å liste filer og vise informasjon om Dem På Linux-systemer. Dette innlegget gjennomgår en rekke kommandoer som gir detaljer om filer og gir muligheter for å tilpasse filoppføringene dine for å møte dine behov.

de fleste kommandoene viser filer i individuelle kataloger, mens andre når så dypt inn i et filsystem som du bryr deg om å se.

den primære kommandoen for oppføring av filer er selvsagt ls. Denne kommandoen har imidlertid et omfattende antall alternativer for å finne og notere bare filene du vil se. I tillegg er det alltid finne for å hjelpe med svært spesifikke filsøk.

Liste filer etter navn

den enkleste måten å liste filer etter navn er å liste dem ved hjelp av ls-kommandoen. Oppføring av filer etter navn (alfanumerisk rekkefølge) er tross alt standard. Du kan velge ls (ingen detaljer) eller ls-l (mange detaljer) for å bestemme visningen.

$ ls | head -68pgs.pdfAesthetics_Thank_You.pdfalien.pdfAnnual_Meeting_Agenda-20190602.pdfbigfile.bz2bin$ ls -l | head -6-rw-rw-r-- 1 shs shs 10886 Mar 22 2019 8pgs.pdf-rw-rw-r-- 1 shs shs 284003 May 11 2019 Aesthetics_Thank_You.pdf-rw-rw-r-- 1 shs shs 38282 Jan 24 2019 alien.pdf-rw-rw-r-- 1 shs shs 97358 May 19 2019 Annual_Meeting_20190602.pdf-rw-rw-r-- 1 shs shs 18115234 Apr 16 17:36 bigfile.bz2drwxrwxr-x 4 shs shs 8052736 Jul 10 13:17 bin

Rør utgangen av ls til more-kommandoen hvis du vil se gjennom oppføringen din en skjermfull om gangen.

Listing filer i omvendt navn rekkefølge

hvis du vil reversere oppføringen av filer etter navn, legger du til-r (revers) alternativet. Dette vil være som å snu den normale oppføringen opp ned.

$ ls -r$ ls -lr

Oppføring av filer etter filtype

ls-kommandoen analyserer ikke filtyper etter innhold, men fungerer med filnavn. Det er imidlertid et kommandoalternativ som kan liste filer ved utvidelse. Hvis du legger til-x-alternativet, vil ls sortere filer etter navn i hver utvidelseskategori. For eksempel vil det liste filer uten utvidelser først (i alfanumerisk rekkefølge) etterfulgt av filer med utvidelser som .1, .bz2,.c og så videre.

Bare oppføring av kataloger

som standard vil ls-kommandoen vise både filer og kataloger. Hvis du bare vil liste opp kataloger, kan du bruke – d-alternativet. Du vil få en oppføring som denne:

$ ls -d */1/ backups/ modules/ projects/ templates/2/ html/ patches/ public/ videos/bin/ new/ private/ save/

Listingsfiler etter størrelse

hvis du vil liste filer i størrelsesrekkefølge, legg til – s-alternativet. Vær imidlertid oppmerksom på at dette faktisk ikke vil vise deg størrelsene (sammen med andre fildetaljer), med mindre du også legger til-l (long listing) – alternativet. Når du viser filer etter størrelse, er det generelt nyttig å se at kommandoen gjør det du spurte. Legg merke til at standard er å vise de største filene først. Legg til-r-alternativet for å reversere dette (dvs.ls-lSr).

$ ls -lStotal 959492-rw-rw-r-- 1 shs shs 357679381 Sep 19 2019 sav-linux-free-9.tgz-rw-rw-r-- 1 shs shs 103270400 Apr 16 17:38 bigfile-rw-rw-r-- 1 shs shs 79117862 Oct 5 2019 Nessus-8.7.1-ubuntu1110_amd64.deb

Oppføring av filer etter eier

hvis du vil liste filer etter eier (f. eks., i en delt katalog), kan du sende utdataene fra ls-kommandoen for å sortere og plukke ut eierkolonnen ved å legge til-k3 for å sortere på det tredje feltet.

$ ls -l | sort -k3 | moretotal 56-rw-rw-r-- 1 dory shs 0 Aug 23 12:27 tasklistdrwx------ 2 gdm gdm 4096 Aug 21 17:12 tracker-extract-files.121srwxr-xr-x 1 root root 0 Aug 21 17:12 ntf_listenerc0c6b8b4567drwxr-xr-x 2 root root 4096 Aug 21 17:12 hsperfdata_root
^
|

faktisk kan du sortere på hvilket som helst felt på denne måten (f. eks. år). Bare vær forsiktig med å legge til en » n » – – k5n – hvis du sorterer på et felt som er numerisk eller du sorterer i alfanumerisk rekkefølge. Denne sorteringsteknikken er også nyttig for sortering av filinnhold, ikke bare oppføring av filer.

Liste filer etter alder

Bruk alternativet-t til å liste filer etter alder – hvor nye de er. Legg til-r-alternativet for å få de sist oppdaterte filene som vises sist i listen. Jeg bruker dette aliaset til å vise meg en liste over filene som jeg sist har oppdatert:

$ alias recent='ls -ltr | tail -8'

Merk at filendring og modifikasjonstider er forskjellige. Alternativene – c (endring) og-t (modifikasjon) vil ikke alltid gi de samme resultatene. Hvis du endrer tillatelser på en fil og ingenting annet, vil-c sette filene øverst på ls-utgangen mens-t ikke vil. Hvis du er nysgjerrig på forskjellen, se på utgangen av stat-kommandoen.

$ stat ckacct File: ckacct Size: 200 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2049d Inode: 829041 Links: 1Access: (0750/-rwxr-x---) Uid: ( 1000/ shs) Gid: ( 1000/ shs)Access: 2020-08-20 16:10:11.063015008 -0400Modify: 2020-08-17 07:26:34.579922297 -0400 <== content changesChange: 2020-08-24 09:36:51.699775940 -0400 <== content or permissions changes Birth: -

Liste filer etter gruppe

for å sortere filer etter de tilknyttede gruppene, kan du sende utdataene fra en lang liste til sorter-kommandoen og fortelle den å sortere i kolonne 4.

$ ls -l | sort -k4

Liste filer etter tilgangsdato

for å liste filer etter tilgangsdato (sist åpnet først), bruk-ltu-alternativene. «U «håndhever oppføringsordren» etter tilgangsdato».

$ ls -ltutotal 959500-rwxr-x--- 1 shs shs 200 Aug 24 09:42 ckacct <== most recently used-rw-rw-r-- 1 shs shs 1335 Aug 23 17:45 lte

Oppføring av flere filer på en enkelt linje

noen ganger er en kondensert filoppføring mer passende for oppgaven ved hånden. Ls-kommandoen har selv muligheter for det. For å liste filer på så få linjer som mulig, kan du bruke — format=comma til å skille filnavn med komma som i denne kommandoen:

$ ls --format=comma1, 10, 11, 12, 124, 13, 14, 15, 16pgs-landscape.pdf, 16pgs.pdf, 17, 18, 19,192.168.0.4, 2, 20, 2018-12-23_OoS_2.pdf, 2018-12-23_OoS.pdf, 20190512_OoS.pdf,'2019_HOHO_application working.pdf' …

Foretrekker mellomrom? Bruk — format=tvers i stedet.

$ ls --format=across z*z zip zipfiles zipfiles1.bat zipfiles2.batzipfiles3.bat zipfiles4.bat zipfiles.bat zoom_amd64.deb zoomap.pdfzoom-mtg

Legge til dybde i søkene dine

mens ls generelt viser filer i en enkelt katalog, kan du i stedet velge å rekursivt liste filer ved å bruke-r-alternativene, dype inn i hele dybden av kataloger:

$ ls -R zzzzz | grep -v "^$"zzzzz:zzzzzzzzz/zzzz:zzzzzzzz/zzzz/zzz:zzzzzzz/zzzz/zzz/zz:zzzzzz/zzzz/zzz/zz/z:sleeping

Alternativt kan du bruke en finn-kommando med en begrenset eller ubegrenset dybdespesifikasjon. I denne kommandoen instruerer vi find-kommandoen for å se på bare tre nivåer av kataloger:

$ find zzzzz -maxdepth 3zzzzzzzzzz/zzzzzzzzz/zzzz/zzzzzzzz/zzzz/zzz/zz

Velge ls vs finn

når du trenger å liste filer som oppfyller en svært selektiv liste over krav, er find-kommandoen sannsynligvis et bedre verktøy å bruke enn ls.

I Motsetning til ls ser finn-kommandoen så dypt ut som mulig med mindre du begrenser den. Den har også mange andre alternativer og en-exec kommando som lar deg ta noen bestemt handling når du finner filene du leter etter.

Wrap-Up

ls-kommandoen har mange alternativer for oppføring av filer. Sjekk dem ut. Du kan finne noen som du vil elske.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *