Hvilke kommandoer trenger jeg for at Linux' ls
skal vise filstørrelsen i MB?
ls -l --block-size=M
vil gi deg en lang formatliste (nødvendig for å se filstørrelsen) og rund filstørrelser opp til nærmeste MiB.
Hvis du vil ha MB (10^6 byte) i stedet for MiB (2^20 byte), bruker du --block-size=MB
i stedet.
Hvis du ikke vil ha suffikset -M
knyttet til filstørrelsen, kan du bruke noe sånt som --block-size=1M
. Takk Stéphane Chazelas for å foreslå dette.
Hvis du bare vil ha filstørrelser i "rimelige" enheter, i stedet for spesifikt megabyte, kan du bruke -lh
for å få en lang formatliste og lesbar presentasjon av filstørrelsen. Dette vil bruke enheter for filstørrelse for å holde filstørrelser presentert med omtrent 1-3 sifre (slik at du vil se filstørrelser som 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
og så videre.
Parameteren --block-size
er beskrevet i man-siden for ls; man ls
og søk etter SIZE
. Det åpner for andre enheter enn MB/MiB også, og fra utseendet på det (jeg gjorde' t prøve det) vilkårlige blokkstørrelser også (slik at du kan se filstørrelsen som et antall 429-byte blokker hvis du vil).
Merk at både --block-size
og -h
er GNU-utvidelser på toppen av the Open Group's ls
, så dette fungerer kanskje ikke hvis du ikke har et GNU userland (som de fleste Linux-installasjoner har). ls
fra GNU Coreutils 8.5 støtter --block-size og -h som beskrevet ovenfor. Takk til kojiro for å påpeke dette.
ls -lh` gir filstørrelser som kan leses av mennesker, langt format.
Den bruker k-, M-, G- og T-suffikser (eller ingen suffiks for byte) etter behov, slik at tallet blir lite, f.eks. 1,4K eller 178M.
-h
er en GNU coreutils-utvidelse, ikke baseline POSIX.
Merk at dette ikke svarer på spørsmålet nøyaktig slik det ble stilt. Hvis du vil ha størrelser strengt i MiB selv for små eller gigantiske filer, Michael Kjörling's svar gjør det for GNU coreutils ls
.