So, in many situations I wanted a way to know how much of my disk space is used by what, so I know what to get rid of, convert to another format, store elsewhere (such as data DVDs), move to another partition, etc. In this case I'm looking at a Windows partition from a SliTaz Linux bootable media.
In most cases, what I want is the size of files and folders, and for that I use NCurses-based ncdu:
But in this case, I want a way to get the size of all files matching a regex. An example regex for .bak files:
.*\.bak$
How do I get that information, considering a standard Linux with core GNU utilities or BusyBox?
Edit: The output is intended to be parseable by a script.
Linux commands to check disk space using:df command – Shows the amount of disk space used and available on Linux file systems. du command – Display the amount of disk space used by the specified files and for each subdirectory.
Check Disk Usage in Linux Using the du Commanddu /home/user/Desktop — this command line allows users to see into the disk usage of their Desktop folders and files (subdirectories are included as well). du -h /home/user/Desktop — just like with df, the option -h displays information in a human-readable format.
I suggest something like: find . -regex '.*\.bak' -print0 | du --files0-from=- -ch | tail -1
Some notes:
-print0
option for find
and --files0-from
for du
are there to avoid issues with whitespace in file names./dir1/subdir2/file.bak
, not just file.bak
, so if you modify it, take that into accounth
flag for du to produce a "human-readable" format but if you want to parse the output, you may be better off with k
(always use kilobytes)tail
command, you will additionally see the sizes of particular files and directoriesSidenote: a nice GUI tool for finding out who ate your disk space is FileLight. It doesn't do regexes, but is very handy for finding big directories or files clogging your disk.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With