I am a new Linux system user. How do I copy a directory or folder under Linux operating system using command line options and bash shell?
Introduction: A file is a collection of data items stored on disk. Alternatively, it’s device which can store the information, data, music (mp3/mp4 files), picture, movie, sound, book and more. A directory is a group of files. A directory divided into two types such as root and subdirectory. You can use the various command to copy a folder under Linux operating systems. This page shows how to copy the contents of a folder to another folder using Linux terminal.
How To Copy a Folder with cp Command
The cp command is a Linux command for copying files and directories. The syntax is as follows:
cp source destination cp dir1 dir2 cp -option source destination cp -option1 -option2 source destination |
Linux cp command examples
In this example copy /home/vivek/letters/ folder and all its files to /usb/backup/ directory:cp -avr /home/vivek/letters /usb/backup
Where,
- -a : Preserve the specified attributes such as directory an file mode, ownership, timestamps, if possible additional attributes: context, links, xattr, all.
- -v : Verbose output.
- -r : Copy directories recursively.
More examples of cp command to copy folders on Linux
Copy a folder called /tmp/conf/ to /tmp/backup/:$ cp -avr /tmp/conf/ /tmp/backup/
Sample outputs:
All the files and subdirs/folders in a directory can be copied to another folder by using the star wildcard. For example, the following would copy all of the files in a folder named /home/vivek/Documents/ into another existing folder called /data/:cp -v /home/vivek/Documents/* /data/
Use Linux rsync Command to copy a folder
You can also use rsync command which is a fast and extraordinarily versatile file copying tool. It can make copies across the network. The syntax is as follows for the rsync command
rsync -av /path/to/source/ /path/to/destination/ rsync -av /path/to/source/ /path/to/destination/source/ |
To backup my home directory, which consists of large files and mail folders to /media/backup, enter:$ rsync -avz /home/vivek /media/backup
I can copy a folder to remote machine called server1.cyberciti.biz as follows:$ rsync -avz /home/vivek/ server1.cyberciti.biz:/home/backups/vivek/
Where,
- -a : Archive mode i.e. copy a folder with all its permission and other information including recursive copy.
- -v : Verbose mode.
- -z : With this option, rsync compresses the file data as it is sent to the destination machine, which reduces the amount of data being transmitted something that is useful over a slow connection.
You can show progress during transfer using –progress or -P option:$ rsync -av --progress /path/to/source/ /path/to/dest
Sample outputs:
Conclusion
You just learned how to copy a folder on a Linux like operating system using the cp command and rsync command. In conclusion, use rsync for a network folder transfer and cp for a local disk transfer.