Shell Scripting: Check File Size ( Find File Size )

by on February 24, 2009 · 9 comments· LAST UPDATED February 24, 2009

in , ,

How do I find out file size under UNIX / Linux operating system and store the same to a variable called s?

There are various ways and command tricks to find out file size under UNIX / Linux shell.

stat command example

You can display file or file system status with GNU/stat command. The -c option can be used to get specific information about file such as size in bytes:
$ stat -c %s fw8ben.pdf
Sample output:

74777

Refer to your local stat command man page for exact syntax, for example, FreeBSD stat works as follows:
$ stat -s file.txt

ls command example

Use ls command as follows to get human readable format:
$ ls -lah fw8ben.pdf | awk '{ print $5}'
Sample output:

74K

You can store output to a variable:
$ s=$(ls -lah idg.fw8ben.pdf | awk '{ print $5}')
$ echo $s

OR
$ s=$( stat -c %s fw8ben.pdf)
$ echo $s

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 9 comments… read them below or add one }

1 marz February 25, 2009 at 9:19 pm

s=$(du -h myfile | awk ‘{ print $1 }’)

“-h” == “print sizes in human readable format (e.g., 1K 234M 2G)”

Reply

2 tom July 29, 2010 at 12:55 pm

Thanks for these tips.

Question: in — $ stat -c %s fw8ben.pdf —- what does %s do ? Any how does one refer to it i.e what is it ?

Tom

Reply

3 Raghu B R June 22, 2011 at 6:29 am

du -k Filename

Reply

4 Arsalan December 3, 2012 at 1:05 pm

Thanks for giving this command, for some reason stat -c option is not working on my mac terminal but this command does.

Reply

5 PGR October 15, 2013 at 3:39 pm

On Mac OS X (18.8.x), you may use
stat -f %z

Reply

6 marty February 26, 2012 at 11:52 am

did you try for android bash scripting, without wc, du, stat or awk?
still working on it, looks challenging

Reply

7 Gabbar Singh November 1, 2012 at 4:16 pm

Does Android bash support this idiom?:

OIFS=”$IFS”
IFS=’ ‘
set -A size `ls -s “$1″`
IFS=$OIFS
filesize=${size[0]}

Reply

8 PGR October 15, 2013 at 3:39 pm

On MacOS X (10.8.x), you may use
stat -f %z

Reply

9 ee December 10, 2013 at 7:22 pm

i prefer on Freebsd stat -f “%z” as well

Reply

Leave a Comment

Tagged as: , , , , , , , , , ,

Previous Faq:

Next Faq: