On Unix (Tru64), how to show file size in megabytes? This procudes sizes in bytes

ls -la
link|improve this question
feedback

migrated from stackoverflow.com Sep 20 '10 at 11:29

This question came from our site for professional and enthusiast programmers.

6 Answers

Maybe -h is sufficient for you:

-h
When used with the -l option, use unit suffixes: Byte, Kilobyte, Megabyte, Gigabyte, Terabyte and Petabyte in order to reduce the number of digits to three or less using base 2 for sizes.

ls -lah

General advice: Use man commandname to read the manual of a certain commend, e.g. here man ls.

link|improve this answer
1  
Thanks, but -h option does not seem to exist on Tru64 Unix. – atricapilla Sep 20 '10 at 11:26
general advice, redirect those questions to superuser – Gregory Pakosz Sep 20 '10 at 11:28
1  
General advice: install GNU utilities ... – reinierpost Sep 20 '10 at 12:35
+1 for the man pages(+5 if I could!). They are a priceless resource when you don't know how to do something with a particular command. – Kevin M Sep 20 '10 at 13:54
feedback

You will have to use awk to do the math for you:

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

This won't affect the output for files that are smaller than mega.

You may need to adjust the field number to match the way your ls is laid out. You can change mega to "1000000" if that is your preference.

This will print more decimal places than you probably want. You could implement a rounding function.

link|improve this answer
feedback

maybe there is a du -h?

link|improve this answer
No, actually there is not. df -h works but for folders. – atricapilla Sep 20 '10 at 11:31
feedback

ls --block-size=M prints the sizes in Megabytes but shows 1MB also for anything below 1 MB. I'm unsure if this option is acceptable in your UNIX version of ls, though.

Actually ls -lh also prints sizes in Gigabytes if the file is big enough (Well anyways: on Linux 64bit this does work :>)

On a side node: du -sh * prints also directory sizes in current directory.

link|improve this answer
feedback

du -sm filename.txt

link|improve this answer
feedback

try ls -lash, it prints sizes in human readable format

link|improve this answer
feedback

Your Answer

 
or
required, but never shown