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

ls commando: hoe toon ik de bestandsgrootte in megabytes?

In Unix (Tru64), hoe laat ik het ls commando de bestandsgrootte in megabytes zien? Op dit moment kan ik het in bytes weergeven met behulp van:

ls -la

Antwoorden (9)

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

Misschien is -h voor u voldoende:

-h Bij gebruik van de -l optie, gebruik de unit suffixen: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte en Petabyte om het aantal cijfers terug te brengen tot drie of minder met behulp van basis 2 voor maten.

ls -lah

Algemeen advies: Gebruik man commandname om de handleiding / hulp van een bepaalde opdracht te lezen, bijvoorbeeld hier man ls.

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

ls --block-size=M drukt de maten af in Megabytes maar toont ook 1MB voor alles onder 1 MB. Ik weet niet zeker of deze optie acceptabel is in jouw UNIX versie van ls, maar.

Eigenlijk print ls -lh ook maten in Gigabytes als het bestand groot genoeg is (Nou ja, hoe dan ook: op Linux 64bit werkt dit wel :>)

Op een zijknooppunt: du -sh * print ook mapgroottes in de huidige map.

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

U zult awk moeten gebruiken om de wiskunde voor u te doen:

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

Dit heeft geen invloed op de uitvoer van bestanden die kleiner zijn dan mega.

Het kan zijn dat u het veldnummer moet aanpassen aan de manier waarop uw ls is ingedeeld. U kunt mega wijzigen in “100000000” als dat uw voorkeur heeft.

Dit zal meer decimalen afdrukken dan u waarschijnlijk wilt. U zou een afrondingsfunctie kunnen implementeren.

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

probeer ls -shR voor recursief menselijk leesbaar formaat.

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

du -sm filename.txt

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

U kunt ook

du -sh ./*

typen Dit geeft een lijst van alle mappen onder de huidige directory, met een voor mensen leesbaar formaat, inclusief de meer bekende bestandsgroottes in Kb, Mb, Gb.

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

Voor de parameter --block-size:

  • gebruik MB voor 10^6
  • gebruik alleen M voor 2^20
2
2
2
2015-06-13 07:36:58 +0000

Als je alleen de grootte van een specifiek bestand wilt, dan is het commando, een triviale extrapolatie van de vorige antwoorden,:

ls -sh _filename(s)_

-s is voor de grootte en de h is voor Menselijk Leesbaar (zoals hierboven een paar keer vermeld).

De uitvoer ziet er als volgt uit:

753M myfilename

Als je de bestandsnaam (-namen) weglaat, wordt de directory weergegeven, waarbij de grootte van elk bestand naast de naam wordt geplaatst - niet anders dan wat ls -la doet als het wordt aangeroepen zonder bestandsnaamargumenten.

Hoop dat dit helpt.

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

Als je gewoon geïnteresseerd bent in de bestandsgrootte, en je hoeft het ls commando niet te gebruiken, probeer dan het volgende:

# 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

Dit zal de bestandsgrootte afdrukken zonder dat je iets hoeft te ontleden.