Disk management in Linux

If you need to manage your disk or just check the disk space usage of a Linux powered computer, here are some suggestions for both graphical and command line interfaces.

Desktop applications for disk management:

File mangers: in a modern Linux desktop environment checking disk usage is a trivial task. The file managers, default ones like Nautilus in Gnome, Dolphin in KDEThunar in XFCE or other popular file managers like Gnome Commander, Tux Commander, Krusader can display disk space with just a few mouse clicks.

Gnome System Monitor – has a “File Systems” tab which gives you a quick overview over your file systems in terms of mount points, file systems types (ext3, ext4, etc.), disk space.

KDiskFree – similar with the Gnome System Monitor – File Systems, but since this is a part of the KDE desktop it might be preferred over the mentioned Gnome application.

Gnome Disk Utility – this disk utility from RedHat, not only that it provides detailed information about the disk and S.M.A.R.T. data, but also has options similar to a partitioning application (format, unmount, edit partition, etc.). It is included by default in Ubuntu.

GParted – a full featured Gnome partition manager with a friendly user interface suited for about any disk management task. Has a live cd version called GParted Live which makes partitioning a breeze.

CLI applications for disk management:

ls – the directory listing command, probably one of the most popular tool for both novice and experts; one of the best results is provided using the –alh parameters.

du – summarize disk usage for each file, recursively for directories. Use -h parameter for a human readable output of the size and -s parameter to summarize the disk usage of a directory instead of displaying the size of each file (helpful for directories with a large number of files/subdirectories). The –max-depth parameter also deserves to be mentioned.

df – can be defined as the CLI version of the Gnome System Monitor’s “File System” tab previously mentioned. Like in the case of du command, use -h parameter for better readability.

fdisk – command line interface partition editor

cfdisk – same as fdisk, but with a more user-friendly interface

Find all folders with same name in a directory tree and execute commands on them

In a Linux CLI environment you can use the “find” command to search for files or folder. In this tutorial I will explain how to find folders having the same name in a directory tree and execute commands on them.

Since the best way to learn is by example, let’s consider the following scenario: a collection of images along with their corresponding thumbnails in directories named “thumbs”; so what you are trying to do is remove all “thumbs” directories from your images collection.

The first step is to determine the path of the directory tree. Assuming that “/home/cristian/wallpapers” is the path you can execute the command by providing the entire path as parameter for the “find” command. If you are already in this directory you can use the dot “.” instead of the path (the dot is the equivalent of the current directory).

Now that you have the path, you need two more parameters for the find command – the name of the directories and the type. For the type you must use the letter “d” since this is how the “find” command will know that you want to search for a directory. For the name just provide “thumbs” since this is what we want to remove (see above scenario).

So far the command is:

find "/home/cristian/wallpapers" -name thumbs -type d

You found the directories, now pass this list to the deleting command with “xargs”:

find "/home/cristian/wallpapers" -name thumbs -type d | xargs rm -rf

If you need root permissions to delete the files just add the “sudo”:

find "/home/cristian/wallpapers" -name thumbs -type d | xargs sudo rm -rf

then enter your password.