Odpowiedzi:
Może ci -h
wystarczy:
-h
W przypadku użycia z opcją -l użyj sufiksów jednostek: Bajt, Kilobajt, Megabajt, Gigabajt, Terabajt i Petabajt, aby zmniejszyć liczbę cyfr do trzech lub mniej, używając podstawy 2 dla rozmiarów.
ls -lah
Porada ogólna: man commandname
służy do czytania instrukcji / pomocy dla określonego polecenia, np man ls
. Tutaj .
ls --block-size=M
drukuje rozmiary w megabajtach, ale pokazuje 1 MB również dla wszystkiego poniżej 1 MB. Nie jestem jednak pewien, czy ta opcja jest dopuszczalna w twojej wersji ls dla UNIX-a.
Właściwie ls -lh
drukuje również rozmiary w gigabajtach, jeśli plik jest wystarczająco duży (Cóż w każdym razie: w systemie Linux 64bit to działa:>)
W węźle bocznym: du -sh *
drukuje również rozmiary katalogów w bieżącym katalogu.
ls -h
nie ma znaczenia, gdy plik wzrośnie powyżej 1 GB, więc używam tego polecenia w pętli 1-sekundowej:while true ; do ls -al --block-size=M ; sleep 1 ; done
Będziesz musiał użyć awk
matematyki:
ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'
Nie wpłynie to na dane wyjściowe dla plików mniejszych niż mega
.
Konieczne może być dostosowanie numeru pola w celu dopasowania do układu ls
. Możesz zmienić mega
na „1000000”, jeśli takie są twoje preferencje.
Spowoduje to wydrukowanie większej liczby miejsc po przecinku, niż prawdopodobnie chcesz. Możesz zaimplementować funkcję zaokrąglania.
ls -lh
lub ls --block-size=M
, ale AWK jest bardzo przydatny!
wypróbuj ls -shR
rekurencyjny format czytelny dla człowieka.
-h
Tru64 , i zrobił to przez dwa lata przed opublikowaniem tej odpowiedzi.
Jeśli chcesz tylko rozmiar określonego pliku, to polecenie, trywialna ekstrapolacja poprzednich odpowiedzi, to:
ls -sh nazwa_pliku
-s
jest dla wielkości i h
jest czytelny dla człowieka (jak wspomniano powyżej kilka razy).
Dane wyjściowe będą wyglądać następująco:
753M myfilename
Jeśli pominiesz nazwę pliku (ów), wyświetli on katalog, umieszczając rozmiar każdego pliku obok jego nazwy - podobnie jak ls -la
przy wywołaniu bez argumentów nazwy pliku.
Mam nadzieję że to pomoże.
-h
opcja nie istnieje w ls
tym systemie.
ls -l --block-size=MB
Dla --block-size
parametru:
MB
za 10 ^ 6M
dla 2 ^ 201MB
. Z tego powodu okazałem ls -l --block-size=kB
się bardziej przydatny.
Jeśli interesuje Cię tylko rozmiar pliku i nie musisz używać ls
polecenia, spróbuj wykonać następujące czynności:
# echo "Hello World" > file.txt
# ls -l file.txt
-rw-r--r-- 1 user user 12 Mar 10 11:32 file.txt
# stat --printf='%s\n' file.txt
12
Spowoduje to wydrukowanie rozmiaru pliku bez potrzeby parsowania czegokolwiek.