2010-09-20 11:20:48 +0000 2010-09-20 11:20:48 +0000
163
163

ls-command: jak wyświetlić rozmiar pliku w megabajtach?

W systemie Unix (Tru64), jak sprawić, aby polecenie ls wyświetliło rozmiar pliku w megabajtach? Obecnie jestem w stanie wyświetlić go w bajtach za pomocą:

ls -la

Odpowiedzi (9)

250
250
250
2010-09-20 11:22:20 +0000

Może -h jest dla Ciebie wystarczający:

-h Przy zastosowaniu opcji -l należy użyć sufiksów urządzenia: 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

Ogólna rada: Użyj man commandname, aby przeczytać instrukcję/pomoc danego polecenia, np. tutaj man ls.

32
32
32
2010-09-20 12:33:13 +0000

ls --block-size=M drukuje rozmiary w megabajtach, ale pokazuje 1MB również dla czegokolwiek poniżej 1MB. Nie jestem jednak pewien czy ta opcja jest dopuszczalna w UNIX-owej wersji ls.

Właściwie ls -lh drukuje również rozmiary w gigabajtach, jeśli plik jest wystarczająco duży (No cóż: na Linux 64bit to działa :>)

Na bocznym węźle: du -sh * drukuje również rozmiary katalogów w bieżącym katalogu.

15
15
15
2010-09-20 13:36:26 +0000

Będziesz musiał użyć awk, aby zrobić matematykę dla Ciebie:

ls -l | awk 'BEGIN{mega=1048576} $5 >= mega {$5 = $5/mega "MB"} {print}'

To nie wpłynie na wyjście dla plików, które są mniejsze niż mega.

Być może będziesz musiał dostosować numer pola, aby dopasować sposób, w jaki ls jest ułożony. Możesz zmienić mega na “1000000”, jeśli tak wolisz.

To spowoduje wydruk większej liczby miejsc po przecinku, niż prawdopodobnie chcesz. Możesz zaimplementować funkcję zaokrąglania.

13
13
13
2012-10-14 08:27:30 +0000

spróbuj ls -shR dla rekurencyjnego ludzkiego formatu czytelnego.

5
5
5
2010-09-20 16:36:06 +0000

du -sm filename.txt

5
5
5
2015-04-19 22:57:53 +0000

Możesz również wpisać

du -sh ./*

. Spowoduje to wyświetlenie wszystkich folderów w aktualnym katalogu, w formacie czytelnym dla człowieka, łącznie z bardziej znanymi rozmiarami plików w Kb, Mb, Gb.

2
2
2
2015-07-24 18:25:55 +0000
ls -l --block-size=MB

Dla parametru --block-size:

  • użyj MB dla 10^6
  • użyj tylko M dla 2^20
2
2
2
2015-06-13 07:36:58 +0000

Jeśli chcesz tylko określić rozmiar tylko konkretnego pliku, to komenda, trywialna ekstrapolacja poprzednich odpowiedzi, to:

ls -sh _filename(s)_

-s jest dla rozmiaru, a h jest dla Human Readable (jak wspomniano powyżej kilka razy).

Wyjście będzie wyglądało następująco:

753M myfilename

Jeśli pominiesz nazwę pliku(ów), wyświetli on katalog, umieszczając rozmiar każdego pliku obok jego nazwy - nie inaczej niż robi to ls -la, gdy jest wywoływany bez argumentów nazwy pliku.

Mam nadzieję, że to pomoże.

0
0
0
2016-03-10 17:34:39 +0000

Jeśli interesuje Cię tylko rozmiar pliku, a nie musisz używać komendy ls, spróbuj następującej:

# 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

To wydrukuje rozmiar pliku bez potrzeby parsowania.