11 måder at liste og sortere filer på

der er mange måder at liste Filer og vise oplysninger om dem på systemer. Dette indlæg gennemgår et antal kommandoer, der indeholder detaljer om filer og giver muligheder for at tilpasse dine filfortegnelser til at imødekomme dine behov.

de fleste af kommandoerne viser filer i individuelle mapper, mens andre når så dybt ind i et filsystem, som du plejer at se.

den primære kommando til notering af filer er selvfølgelig ls. Denne kommando har dog et omfattende antal muligheder for at finde og liste kun de filer, du vil se. Plus, der er altid finde for at hjælpe med meget specifikke filsøgninger.

notering af filer efter navn

den nemmeste måde at liste filer efter navn er simpelthen at liste dem ved hjælp af kommandoen ls. Notering af filer efter navn (alfanumerisk rækkefølge) er trods alt standard. Du kan vælge ls (ingen detaljer) eller ls-l (masser af detaljer) for at bestemme dit syn.

$ 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 udgangen af ls til kommandoen mere, hvis du vil gennemgå din fortegnelse en screenful ad gangen.

notering af filer i omvendt navnrækkefølge

for at vende listen over filer efter navn skal du tilføje indstillingen-r (omvendt). Dette vil være som at vende den normale fortegnelse på hovedet.

$ ls -r$ ls -lr

notering af filer efter filtypenavn

kommandoen ls analyserer ikke filtyper efter indhold, men fungerer med filnavne. Der er dog en kommandoindstilling, der kan liste filer efter udvidelse. Hvis du tilføjer indstillingen-h, sorterer ls filer efter navn inden for hver udvidelseskategori. For eksempel vil det Liste filer uden udvidelser først (i alfanumerisk rækkefølge) efterfulgt af filer med udvidelser som .1, .BS2,.c og så videre.

kun notering af mapper

som standard viser kommandoen ls både filer og mapper. Hvis du kun vil liste mapper, kan du bruge indstillingen-d. Du får en liste som denne:

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

notering af filer efter størrelse

Hvis du vil liste filer i størrelsesrækkefølge, skal du tilføje indstillingen-s. Bemærk dog, at dette faktisk ikke viser dig størrelserne (sammen med andre filoplysninger), medmindre du også tilføjer indstillingen-l (lang liste). Når du angiver filer efter størrelse, er det generelt nyttigt at se, at kommandoen gør det, du spurgte. Bemærk, at standard er at vise de største filer først. Tilføj-r mulighed for at vende 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

notering af filer efter ejer

Hvis du vil liste filer efter ejer (f. eks., i en delt mappe) kan du videregive output fra LS-kommandoen for at sortere og vælge ejerkolonnen ved at tilføje-k3 for at sortere i det tredje felt.

$ 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å ethvert felt på denne måde (f.eks. Bare vær forsigtig med at tilføje en “n” – -k5n – hvis du sorterer på et felt, der er numerisk, eller du sorterer i alfanumerisk rækkefølge. Denne sorteringsteknik er også nyttig til sortering af filindhold, ikke kun notering af filer.

notering af filer efter alder

brug indstillingen-t til at liste filer i rækkefølge efter alder – hvor nye de er. Tilføj indstillingen-r for at få de senest opdaterede filer, der vises sidst på listen. Jeg bruger dette alias til at vise mig en liste over de filer, jeg senest har opdateret:

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

Bemærk, at filændrings-og modifikationstider er forskellige. Indstillingerne-c (change) og-t (modifikation) giver ikke altid de samme resultater. Hvis du ændrer tilladelser på en fil og intet andet, vil-c sætte disse filer øverst på LS-udgangen, mens-T ikke vil. Hvis du er nysgerrig efter forskellen, skal du se på output fra 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: -

notering af filer efter gruppe

for at sortere filer efter de tilknyttede grupper kan du overføre output fra en lang liste til sorteringskommandoen og fortælle den at sortere i kolonne 4.

$ ls -l | sort -k4

notering af filer efter adgangsdato

for at liste filer efter adgangsdato (Senest åbnet først) skal du bruge indstillingerne-ltu. “U “håndhæver noteringsrækkefølgen” efter adgangsdato”.

$ 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

notering af flere filer på en enkelt linje

Nogle gange er en kondenseret filliste mere passende til den aktuelle opgave. LS-kommandoen har endda muligheder for det. For at liste filer på så få linjer som muligt kan du bruge –format=comma til at adskille filnavne med kommaer som i denne kommando:

$ 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' …

foretrækker hvidt mellemrum? Brug –format = på tværs i stedet.

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

tilføjelse af dybde til dine søgninger

mens ls generelt viser filer i en enkelt mappe, kan du i stedet vælge rekursivt at liste filer ved hjælp af-R-indstillingerne og dykke ned i hele dybden af mapper:

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

Alternativt kan du bruge en find-kommando med en begrænset eller ubegrænset dybdespecifikation. I denne kommando instruerer vi find-kommandoen om kun at se på tre niveauer af mapper:

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

valg af ls vs find

når du har brug for at liste filer, der opfylder en meget selektiv liste over krav, er find-kommandoen sandsynligvis et bedre værktøj at bruge end ls.

I modsætning til ls ser kommandoen find så dybt som muligt, medmindre du begrænser den. Det har også mange andre muligheder og en eksekveringskommando, der giver dig mulighed for at tage en bestemt handling, når du finder de filer, du leder efter.

indpakning

LS-kommandoen har mange muligheder for notering af filer. Tjek dem ud. Du kan finde nogle, som du vil elske.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *