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
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
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
.
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.
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.
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.
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.