Jakich poleceń potrzebuję, aby Linux lswyświetlał rozmiar pliku w MB?
Jakich poleceń potrzebuję, aby Linux lswyświetlał rozmiar pliku w MB?
Odpowiedzi:
ls -l --block-size=Mda 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=MBzamiast tego.
Jeśli nie chcesz Mdołą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ć -lhdł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.5Gi tak dalej.
--block-sizeParametr jest opisane w manualu do ls; man lsi 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-sizei -hsą 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 lsGNU 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 -sflagę, która powoduje, że raportuje liczbę bloków, ale nie ma standardowej flagi --block-size.
--block-sizeod 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-sizejest 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.4KLub 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 .
hjest o wiele łatwiejsze do napisania niż--block-size=M
ls -lw ogóle używa, jeśli nie ludzie? : p
ls -ldanych 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 -lhPrzeczytaj 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=Mspraw,Maby obok rozmiaru wyświetlał się przyrostek, a możesz--block-size=1Mgo pominąć. Warto również wspomnieć, że do tego potrzebujesz GNU ls (większość niewbudowanych systemów Linux będzie miała GNU ls).