Total size of the contents of all the files in a directory [closed]
When I use ls
or du
, I get the amount of disk space each file is occupying.
I need the sum total of all the data in files and subdirectories I would get if I opened each file and counted the bytes. Bonus points if I can get this without opening each file and counting.
Solution 1:
If you want the 'apparent size' (that is the number of bytes in each file), not size taken up by files on the disk, use the -b
or --bytes
option (if you got a Linux system with GNU coreutils):
% du -sbh <directory>
Solution 2:
Use du -sb
:
du -sb DIR
Optionally, add the h
option for more user-friendly output:
du -sbh DIR
Solution 3:
cd to directory, then:
du -sh
ftw!
Originally wrote about it here: https://ao.ms/get-the-total-size-of-all-the-files-in-a-directory/
Solution 4:
Just an alternative:
ls -lAR | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'
grep -v '^d'
will exclude the directories.
Solution 5:
stat's "%s" format gives you the actual number of bytes in a file.
find . -type f |
xargs stat --format=%s |
awk '{s+=$1} END {print s}'
Feel free to substitute your favourite method for summing numbers.