A rough utilization of Linux cat command would be to make a full disk backup or a disk partition backup or cloning of a disk partition by redirecting the command output against the partition of a hard disk, or USB stick or a local image file or write the output to a network socket.
It absolutely normal of you to think of why we should use cat over dd when the latter does the same job easily, which is quite right, however, I recently realized that cat is much faster than dd when its comes to speed and performance.
I do agree that dd provides, even more, options and also very useful in dealing with large backups such as tape drives (How to Clone Linux Partitions Using ‘dd’ Command), whereas cat includes lesser option and it’s not necessarily a worthy dd replacement but still, remains an option wherever applicable.
Suggested Read: How to Clone or Backup Linux Disk Using Clonezilla
Trust me, it gets the job done quite successfully in copying the content of a partition to a new unformatted partition. The only requirements would be to provide a valid hard disk partition with the minimum size of the existing data and with no filesystem whatsoever.
In the below example the first partition on the first hard disk, which corresponds to the /boot
partition i.e. /dev/sda1
, is cloned onto the first partition of the second disk (i.e. /dev/sdb1
) using the Linux redirection operator.
# cat /dev/sda1 > /dev/sdb1
After the command finishes, the cloned partition is mounted to /mnt
and both mount points directories are listed to check if any files are missing.
# mount /dev/sdb1 /mnt # ls /mnt # ls /boot
In order to extend the partition file system to the maximum size issue the following command with root privileges.
Suggested Read: 14 Outstanding Backup Utilities for Linux Systems
$ sudo resize2fs /dev/sdb1
The cat
command is an excellent tool to manipulate text files in Linux and some special multimedia files, but should be avoided for binary data files or concatenate shebang files. For all other options don’t hesitate to execute man cat
from console.
$ man cat
Surprisingly, there is another command called tac, yes, I am talking about tac, which is a reverse version of cat command (also spelled backwards) which display each line of a file in reverse order, want to know more about tac, read How to Use Tac Command in Linux.