How can I copy the contents of a folder to another folder in a different directory using terminal?
I am trying to copy the contents of a folder to another folder in a different directory using terminal.
Would somebody be able to provide me an example of the command line syntax required to achieve this?
Solution 1:
You can copy the content of a folder /source
to another existing folder /dest
with the command
cp -a /source/. /dest/
The -a
option is an improved recursive option, that preserve all file attributes, and also preserve symlinks.
The .
at end of the source path is a specific cp
syntax that allow to copy all files and folders, included hidden ones.
Solution 2:
An alternate is rsync
:
rsync -a source/ destination
The advantages of rsync
are:
- After the initial sync, it will then copy only the files that have changed.
- You can use it over a network, convenient for files in $HOME, especially config files.
Solution 3:
Lets say you have a folder called folder1 in your ~
, inside folder1 is 1 file called file1 and 2 folders called sub1 and sub2 each with other files and folders inside them.
To copy all the contents of ~/folder1
to ~/new_folder1
you would use
cp -r ~/folder1/. ~/new_folder1
new_folder1
would then contain all the files and folders from folder1
.
cp
is the command to copy using a terminal, -r
makes it recursively (so, current directory + further directories inside current) ~/folder1
is the origin folder, ~/new_folder1
is the destination folder for the files/folders inside the origin.
Solution 4:
Simple example.
Copy the directory dir_1 and its contents (files) into directory dir_2:
cp -r ./dir_1 ./dir_2
# or
cp -r ./dir_1/ ./dir_2/
# Results in: ./dir_2/dir_1/_files_
Copy only the contents (files) of dir_1 into directory dir_2:
cp -r ./dir_1/. ./dir_2
# or
cp -r ./dir_1/. ./dir_2/
# Results in: ./dir_2/_files_
_files_
is a placeholder for the actual files located in the directory.
Solution 5:
Check this http://www.cyberciti.biz/faq/copy-folder-linux-command-line/ for more information on copying folder. Hope this helps.
cp Command
cp
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
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
: Explain what is being done.
-r
: Copy directories recursively.
Example
Copy a folder called /tmp/conf to /tmp/backup:
$ cp -avr /tmp/conf/ /tmp/backup