Sometimes you may need to check disk usage or get disk space in Linux / Unix to find which file is using more space in Linux. Here’s how to get disk space in Linux. You can use it to check disk space usage in Ubuntu, CentOS, Redhat, Debian, Fedora and other systems.
How to Get Disk Space in Linux / Unix
You can check disk space in Linux / Unix using du (disk usage) or df (disk free) commands. Both support various options to find disk usage and show disk usage in different ways.
Here’s the syntax of du and df commands
du [options] [locations/devices]
df [options] [locations/devices]
We will look at different ways to use du and df commands
Bonus Read : How to Install Zip and Unzip in Linux
How to Check Disk Space from terminal
Here’s how to check disk usage from terminal.
The above command will list space occupied by all files & folders in your present working directory (pwd). Since there can be many files & directories in a file system, we pass the output of du command to head command and select only the first 10 results. You can change it as per your requirements
$ du | head -n 10
Here’s a sample output
ubuntu@ip-172-30-0-194:~$ du | head -n 10 4 ./.qws/share/data/Ofi Labs/PhantomJS 8 ./.qws/share/data/Ofi Labs 12 ./.qws/share/data 16 ./.qws/share 20 ./.qws 4 ./.gnupg/private-keys-v1.d 8 ./.gnupg 52 ./conf/.git/hooks 8 ./conf/.git/info 4 ./conf/.git/branches
If you don’t want Linux/Unix to display disk usage of subfolders and files in folders, then you can use max-depth option. The following command will give disk usage of only files and folders located at your current directory. It will not recursively calculate disk usage of all subfolders and files in folders.
$ du --max-depth=1
Here’s sample output
ubuntu@ip-172-30-0-194:~$ du --max-depth=1 20 ./.qws 8 ./.gnupg 44704 ./conf 125548 ./fedingo 9592 ./.cache 8 ./.vim 8 ./.ssh 49176 ./.local 259896 .
The above command lists all files & folders in your present working directory along with their size in bytes.
You can get more details about du command using
$ man du
How to get disk usage for specific folder / directory
Here’s the linux command to get disk usage for specific directory / folder
$ du /path/to/dir
Here’s an example of du command for specific folder (e.g /etc/)
$ du /etc/
How to get disk usage in GB and MB
You can use the following command to get disk usage in human readable format (Mb and Gb)
$ du -h
ubuntu@ip-172-30-0-194:~$ du -h --max-depth=1 20K ./.qws 8.0K ./.gnupg 44M ./conf 123M ./fedingo 9.4M ./.cache 8.0K ./.vim 8.0K ./.ssh 49M ./.local 255M .
How to get disk usage by folder / directory
You can get disk space in linux for all files and directories using -a option. We will use its output to get disk usage by directory / folder.
Here’s the command to get top 5 biggest subfolders on your disk
$ sudo du -a | sort -n -r | head -n 5
Here’s the command to get top 5 biggest subfolders in a specific folder/directory
$ sudo du -a /path/to/dir | sort -n -r | head -n 5
We will use the above command to get top 5 biggest folders in /etc folder
$ sudo du -a /etc/ | sort -n -r | head -n 5 7432 /etc/ 1076 /etc/apparmor.d 684 /etc/apache2 640 /etc/ssl 616 /etc/ssl/certs
In the above command we get the disk usage of all files and folders at /etc using du -a command. We sort this output using sort command in descending order of bytes. Finally, we select only top 5 records.
Similarly, you can use df command to get disk space in linux for a user across various disks where the user has read access.
Here’s the command to check disk space using df command, and get disk usage in human readable format (Mb and Gb)
$ df -h Filesystem Size Used Avail Use% Mounted on udev 476M 0 476M 0% /dev tmpfs 98M 784K 98M 1% /run /dev/xvda1 7.7G 4.7G 3.1G 61% / tmpfs 490M 0 490M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 490M 0 490M 0% /sys/fs/cgroup /dev/loop0 18M 18M 0 100% /snap/amazon-ssm-agent/1566 /dev/loop3 29M 29M 0 100% /snap/amazon-ssm-agent/2012 /dev/loop4 97M 97M 0 100% /snap/core/9665 /dev/loop2 97M 97M 0 100% /snap/core/9804 tmpfs 98M 0 98M 0% /run/user/1000
The above command lists all file systems the user has access to, one per row. The first row of output contains column names such as filesystem, total disk space, disk space used, disk space available, percentage disk space used, and location of mount. You can use it to get disk size of various file systems you have access to.
Hopefully, the above commands will help you get disk space in linux for any folder / directory in human readable format.