For at få en distribution af filstørrelser rekursivt i en bestemt mappe på et filsystem med millioner af filer ved hjælp af bash og awk, kan du følge disse trin:
find /sti/til/mappen -type f
Dette vil finde alle filer (-type f) rekursivt i den angivne mappe.
find /sti/til/mappen -type f -exec stat --format="%s" {} \;
Dette vil bruge stat-kommandoen til at få størrelsen (%s) af hver fil.
find /sti/til/mappen -type f -exec stat --format="%s" {} \; | awk '{size[$1]++} END {for (s in size) print s, size[s]}'
Dette vil bruge awk til at tælle forekomsterne af hver filstørrelse og derefter udskrive distributionen.
Her er en mere detaljeret forklaring af awk-delen:
size[$1]++
: Dette opretter en associative array, hvor nøglen er filstørrelsen, og værdien er antallet af forekomster.
END {for (s in size) print s, size[s]}
: Dette udskriver hver filstørrelse og dens tilsvarende antal forekomster, når alle inputlinjer er behandlet.
Ved at følge disse trin kan du effektivt få en distribution af filstørrelser rekursivt i en bestemt mappe på et filsystem med millioner af filer ved hjælp af bash og awk.
Spar dig selv for besvær og kom igennem din to-do liste i dag
1
Beskriv din opgave
2
Modtag bud
3
Få løst din opgave
Møbelsamling
Hjælp med at samle Ikea klædeskab
Maler
Klargøring af lejlighed til flyttesyn
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Havearbejde
Beskæring af 4 større træer
IT support
Geninstallering af windows + programmer
Elektriker
Installation af Sonos musikanlæg i hus
Rengøring
Ugentlig rengøring af lejlighed (114kvm)
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Elektriker
Opsætning af lamper i stue og soveværelse
Catering
3-retters menu til 14 mennesker