Jakich poleceń potrzebuję, aby Linux ls
wyświetlał rozmiar pliku w MB?
Jakich poleceń potrzebuję, aby Linux ls
wyświetlał rozmiar pliku w MB?
Odpowiedzi:
ls -l --block-size=M
da ci długą listę formatów (potrzebną, aby zobaczyć rozmiar pliku) i okrągłe rozmiary plików do najbliższej MiB.
Jeśli chcesz jednostek MB (10 ^ 6 bajtów) zamiast MiB (2 ^ 20 bajtów), użyj --block-size=MB
zamiast tego.
Jeśli nie chcesz M
dołączać sufiksu do rozmiaru pliku, możesz użyć czegoś takiego --block-size=1M
. Dziękuję Stéphane Chazelas za zasugerowanie tego.
Jeśli chcesz po prostu wielkości plików w „rozsądnych” jednostkach, a nie w megabajtach , możesz użyć -lh
długiej listy formatów i prezentacji rozmiaru pliku czytelnego dla człowieka . Pozwoli to wykorzystać jednostki rozmiaru pliku, aby zachować rozmiary plików prezentowanych około 1-3 cyfr (więc można zobaczyć rozmiary plików, takich jak 6.1K
, 151K
, 7.1M
, 15M
, 1.5G
i tak dalej.
--block-size
Parametr jest opisane w manualu do ls; man ls
i wyszukaj SIZE
. Pozwala również na jednostki inne niż MB / MiB, a na podstawie wyglądu (nie próbowałem tego) również dowolnych rozmiarów bloków (aby można było zobaczyć rozmiar pliku jako liczbę bloków 429 bajtów, jeśli chcesz do).
Należy zauważyć, że zarówno --block-size
i -h
są GNU rozszerzeń na górze Open Grupyls
, więc to nie może działać, jeśli nie ma przestrzeni użytkownika GNU (co zrobić większość instalacji systemu Linux). Z ls
GNU Coreutils 8.5 obsługuje --block-size i -h, jak opisano powyżej. Dzięki kojiro za zwrócenie na to uwagi.
ls
? Standardls
nie ma takiego argumentu. Z rozszerzeniem xsi ls
ma -s
flagę, która powoduje, że raportuje liczbę bloków, ale nie ma standardowej flagi --block-size
.
--block-size
od coreutils 8.5, co jest zainstalowane w moim systemie Debian Squeeze. Ponieważ pytanie było wyraźnie skierowane do Linuksa i nie określiło nic innego, przyznam, że założyłem obszar użytkownika skoncentrowany wokół jąder GNU. Zaktualizowałem odpowiedź, aby to wyjaśnić. (Poza tym wydaje się, że Open Group ls też nie ma -h. :)
)
--block-size
jest rozszerzeniem GNU. Podejrzewam, że Mac OS X nie używa GNU ls
.
ls -lh
daje czytelne dla człowieka rozmiary plików, długi format.
W razie potrzeby używa sufiksów k, M, G i T (lub bez sufiksu dla bajtów), więc liczba pozostaje mała, np . 1.4K
Lub 178M
.
-h
jest rozszerzeniem coreutils GNU, a nie bazowym POSIX.
Pamiętaj, że to nie odpowiada dokładnie na pytanie. Jeśli chcesz mieć rozmiary ściśle w MiB, nawet dla małych lub gigantycznych plików, odpowiedź Michaela Kjörlinga robi to dla rdzeni GNUls
.
h
jest o wiele łatwiejsze do napisania niż--block-size=M
ls -l
w ogóle używa, jeśli nie ludzie? : p
ls -l
danych wyjściowych jest złym sposobem na robienie rzeczy, w 99% przypadków. unix.stackexchange.com/questions/128985/why-not-parse-ls . Ten 1% jest hojny i jest w zasadzie ograniczony do jednowierszowych, które piszesz interaktywnie do jednorazowego użytku, a nie skryptu, którego będziesz używać wielokrotnie w nieznanych nazwach plików.
ls -lhS
sortuj według rozmiaru, w formacie czytelnym dla człowieka
ls -lh
Przeczytaj komentarze do odpowiedzi, aby dowiedzieć się, dlaczego tak naprawdę nie odpowiada na pytanie.
Jest to opcja wyszczególnienia rosnąco wszystkiego w kolejności katalogowej według rozmiaru pliku (wciąż czytelnego dla człowieka).
ls -lSrh
--block-size=M
spraw,M
aby obok rozmiaru wyświetlał się przyrostek, a możesz--block-size=1M
go pominąć. Warto również wspomnieć, że do tego potrzebujesz GNU ls (większość niewbudowanych systemów Linux będzie miała GNU ls).