In Linux operating system, most users especially administrators perform tasks and operations using command- line shell, despite GUI (graphical user interface) has gaining popularity. The actual fact is that the commands in Linux is much more powerful, which usually can get the jobs done quickly.

Sometimes, Linux users may need to make a full copy or exact duplicate of an entire whole directory (folder), including all sub-directories. For example, to do a backup of all files and directories inside a folder. Copy entire directory at one go is easy in Linux, with just a simple cp command.


cp -r -a sourcedir targetdir

Where sourcedir is the origin directory, and targetdir is the next directory to copy to. “-r” is the switch parameter to instruct cp command to copy objects recursively to include all subdirectories, while “-a” flag preserves ownerships and permissions.

For example,

cp -r -a /home/user/files /home/user/backup

Above command will copy and duplicate /home/user/files directory as /home/user/backup directory, with all its contents.

cp -r * /home/user/backup

Above command will copy all files and subdirectories of current directory to /home/user/backup folder.