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?
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.Sign up to join this community
You can copy the content of a folder
/source to another existing folder
/dest with the command
cp -a /source/. /dest/
-a option is an improved recursive option, that preserve all file attributes, and also preserve symlinks.
. at end of the source path is a specific
cp syntax that allow to copy all files and folders, included hidden ones.
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
~/new_folder1 you would use
cp -r ~/folder1/. ~/new_folder1
new_folder1 would then contain all the files and folders from
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.
Check this http://www.cyberciti.biz/faq/copy-folder-linux-command-line/ for more information on copying folder. Hope this helps.
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
cp -avr /home/vivek/letters /usb/backup
-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.
Copy a folder called /tmp/conf to /tmp/backup:
$ cp -avr /tmp/conf/ /tmp/backup
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.
If there are two folders: (with write permission)
drwxr-xr-x 4 vimal vimal 4096 Sep 9 12:17 . drwxr-xr-x 3 root root 4096 Aug 18 14:35 .. drwxrwxrwx 6 vimal vimal 4096 Sep 9 12:15 DATA drwxrwxrwx 7 vimal vimal 4096 Sep 9 12:15 PORTAL
If you are inside the folder called PORTAL where you want to copy all content of another folder say DATA at the same level then you will do
vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .
You have to notice 2 dots. Last dot says copy here in present folder
one following /DATA/. says that all the CONTENTS inside DATA folder to be copied, and not the DATA folder itself.
If you remove this trailing "." from /DATA/
then whole DATA folder will be copied inside PORTAL(from where you are coping).
I like this command
rsync -av --progress ~/code/project-source/. ~/code/project-destination --exclude .git --exclude node_modules
Some of the commonly used options in rsync command are listed below: