🐧 Linux / Unix cp command

🐧 Linux / Unix cp command

cp command copies files from one location to another.


cp [OPTION]… –target-directory=DIRECTORY SOURCE…
-a, –archivesame as -dpR
–backup[=CONTROL]make a backup of each existing destination file
-blike –backup but does not accept an argument
–copy-contentscopy contents of special files when recursive
-dsame as –no-dereference –preserve=link
–no-dereferencenever follow symbolic links
-f, –forceif an existing destination file cannot be opened, remove it and try again
-i, –interactiveprompt before overwrite
-Hfollow command-line symbolic links
-l, –linklink files instead of copying
-L, –dereferencealways follow symbolic links
-psame as –preserve=mode,ownership,timestamps
–preserve[=ATTR_LIST]preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: links,
–no-preserve=ATTR_LISTdon’t preserve the specified attributes
–parentsappend source path to DIRECTORY
-Psame as ‘–no-dereference’
-R, -r, –recursivecopy directories recursively
–remove-destinationremove each existing destination file before attempting to open it (contrast with –force)
–reply={yes,no,query}specify how to handle the prompt about an existing destination file
–sparse=WHENcontrol creation of sparse files
–strip-trailing-slashesremove any trailing slashes from each SOURCE argument
-s, –symbolic-linkmake symbolic links instead of copying
-S, –suffix=SUFFIXoverride the usual backup suffix
–target-directory=DIRECTORYmove all SOURCE arguments into DIRECTORY
-u, –updatecopy only when the SOURCE file is newer than the destination file or when the destination file is missing
-v, –verboseexplain what is being done
-x, –one-file-systemstay on this file system


cp file1.txt newdir

Copies the file1.txt in the current directory to the newdir directory.

cp /home/public_html/mylog.txt /home/public_html/backup/mylog.bak

Copies the mylog.txt file in the public_html directory into the public_html/backup directory as mylog.bak. The files are identical however have different names.

cp *.txt newdir

Copy all files ending in .txt into the newdir directory.

cp -r /home/hope/files/* /home/hope/backup

Copies all the files, directories, and subdirectories in the files directory into the backup directory.

Note: Many new versions of Linux/Unix or their variants may also be able to use copy in place of cp or have an alias setup for cp as copy.

Stefan Pejcic
Join the discussion

I enjoy constructive responses and professional comments to my posts, and invite anyone to comment or link to my site.