Próbuję znaleźć rozmiar mojego dysku, więc uruchomiłem poniższe polecenie
$ sudo fdisk -s /dev/sda
976762584
Pokazuje jak wyżej. Myślę, że rozmiar ( 976762584
) dysku jest pokazany w kilobajtach. Jak przekonwertować wartość na megabajty lub gigabajty przez terminal, aby lepiej zrozumieć?
command-line
Avinash Raj
źródło
źródło
df -h /
. Wyświetl rozmiar/
w-h
czytelnym formacie.blockdev --getsize64
Odpowiedzi:
Powłoka wykonuje arytmetykę liczb całkowitych o stałej szerokości bez sprawdzania przepełnienia. Tak więc, wykonując obliczenia, które mogą obejmować duże liczby lub ułamki,
bc
jest dobrym wyborem. Aby uzyskać megabajty:Aby uzyskać gigabajty:
Zadanie
scale=2
mówibc
o wyświetleniu dwóch miejsc po przecinku.źródło
bc <<<"scale=2; $(sudo fdisk -s /dev/sda6) / 1024^2"
numfmt
(część GNU Coreutils ) można użyć tutaj:źródło
W awk
Aby znaleźć rozmiar dysku w megabajtach,
Aby znaleźć rozmiar dysku w gigabajtach,
źródło
sudo fdisk -s /dev/sda
ciebie możesz użyćdf | grep ^\/dev.*/\$
sudo fdisk
był zdefiniowanym zakresem projektu.Jeśli rozmiar podano w kilobajtach, musisz obliczyć za pomocą wbudowanych wyrażeń Bash. Zakładając rozmiar bloku = 512B, musisz wpisać:
To pokaże rozmiar dysku w KiB. Aby przejść dalej, po prostu dodaj
/1024
na końcu wyrażenia:To pokaże rozmiar dysku w MiB i tak dalej.
źródło
$[...]
format ten jest przestarzały i, jakman bash
mówi, „zostanie usunięty w nadchodzących wersjach”. Obecnie preferowanym formatem arytmetyki powłoki jest$((...))
.sudo
brakuje. Również jednostka miary nie jest drukowana.echo $((($(cat /sys/block/sda/size)*512)/1024**3))GB
Możesz to zrobić natywnie za pomocą liczb Bash i liczb pseudo zmiennoprzecinkowych. Zdefiniuj tę funkcję w swoim
~/.bashrc
i ponownie otwórz terminal:Teraz przetestuj:
źródło
Istnieje narzędzie o nazwie jednostki, które można wykorzystać do konwersji jednostek:
Jest dostępny jako pakiet przez
apt install units
.Jest to dość standardowe narzędzie, które można domyślnie zainstalować na różnych innych systemach uniksowych (np. FreeBSD ). Należy pamiętać, że składnia jednostek (1) może się różnić w zależności od implementacji dostępnych w różnych systemach operacyjnych. Oto ta sama konwersja, ale tym razem z jednostkami FreeBSD (1) :
źródło