TLDR; Add the following function to get the size of your files:
duu() {
local files="${1:-$(ls -A)}"
du -hsc $files
}
The usage is as follows:
duu # All files (including hidden ones) in the current directory
duu * # All visible files in the currrent directory
duu *.json # All json files
duu directory/*.json # All json files in the `directory` folder
And that's it. If you want to understand what's going on, continue reading!
du
commandI'm a big fan of using a shell for every task when working, and get the size for an item is not an exception.
The du command estimates the space usage on disk for a set of files or directories. The du
command without arguments lists the space usage of all files in the current directory and subdirectories.
You can specify a target like a folder or file as a parameter:
du file.txt
du directory
du directory/*.json
You can instruct du
to output a human readable size format (using KB, M, and G) with the -h
flag:
du -h *
# 1,0G large.json
# 5,0M medium.json
# 4,0K small.json
By default, du
will iterate over directories. You can avoid this behavior by passing the -s
(summarize) flag. I strongly recommend to have this flag on always because if not, the command will be extremely slow on projects with a lot files on subdirectories (I'm looking at you node_modules!).
And lastly, you can add the -c
(grand total) flag to get the total size of the files analyzed:
du -h *
# 1,0G large.json
# 5,0M medium.json
# 4,0K small.json
# 1,0G total # <- This is the sum of the analyzed files
The flags listed in the previous section are my favorite ones, so I use them always. This results in the du -hsc
command, which is a bit long and easy to make a mistake while typing it.
To avoid type this command always, you can create a function in your .bashrc
file as follows:
duu() {
local files="${1:-$(ls -A)}"
du -hsc $files
}
The local ...
line assigns the files
variable the first parameter provided to the command or sets it to ls -A
otherwise (all files in the current directory, including hidden ones). We pass this value to the du
command in the line below.
And that's it. You can copy this function whenever you want and simple run something like du
to get the disk space of all files or duu *.json
if you want to be more specific!