Robert Elder Software Inc.
  • Home
  • Store
  • Blog
  • Contact
  • Home
  • Store
  • Blog
  • Contact
  • #linux
  • |
  • #commandline
  • |
  • #softwareengineering
  • |
  • #embeddedsystems
  • |
  • #compilers
  • ...
  • View All >>

Intro To 'cp' Command In Linux

2023-04-22 - By Robert Elder

     I use the 'cp' command to copy files on my computer:

cp cat.jpg cat_copy1.jpg

     I also use it to make copies of entire directories.  If I try to make a copy of the directory 'all-photos' like this:

cp all-photos photos-backup-copy

     I'll see an error message like this:

cp: -r not specified; omitting directory 'all-photos'

     To copy directories, I need to use the '-r' flag:

cp -r all-photos photos-backup-copy

     I can also use the '-p' flag to preserve permission and ownership information on the copied file:

ls -l

     If we start with this file:

-rw-rwxr-- 1 mike   mike   1048576 Apr 23 21:35 dog.jpg

     and run these two copy commands:

cp dog.jpg dog_copy1.jpg
sudo cp -p dog.jpg dog_copy2.jpg

     and then re-run the ls command:

ls -l

     the output is now this:

-rw-rwxr-- 1 robert robert 1048576 Apr 23 21:38 dog_copy1.jpg
-rw-rwxr-- 1 mike   mike   1048576 Apr 23 21:35 dog_copy2.jpg
-rw-rwxr-- 1 mike   mike   1048576 Apr 23 21:35 dog.jpg

     this illustrates the difference when using the '-p' flag.

     If you're not careful, you can overwrite an existing file when making a copy:

ls -l
total 1024
-rw-rwxr-- 1 robert robert 1048576 Apr 23 21:38 dog_copy1.jpg
-rw-rw-r-- 1 robert robert       0 Apr 23 21:45 empty.txt
cp empty.txt dog_copy1.jpg
ls -l
total 0
-rw-rwxr-- 1 robert robert 0 Apr 23 21:46 dog_copy1.jpg
-rw-rw-r-- 1 robert robert 0 Apr 23 21:45 empty.txt

     As you can see above, the 'dog_copy1.jpg' file has been overwritten with the 'empty.txt' and the original data has been lost.

     That's why I use the '-n' flag to prevent this from happening:

ls -l
total 1024
-rw-rwxr-- 1 robert robert 1048576 Apr 23 21:38 dog_copy1.jpg
-rw-rw-r-- 1 robert robert       0 Apr 23 21:45 empty.txt
cp -n empty.txt dog_copy1.jpg
ls -l
total 1024
-rw-rwxr-- 1 robert robert 1048576 Apr 23 21:47 dog_copy1.jpg
-rw-rw-r-- 1 robert robert       0 Apr 23 21:45 empty.txt

     And that's why the 'cp' command is my favourite Linux command.

Intro To 'stty' Command In Linux
Intro To 'stty' Command In Linux
Published 2023-10-04
Terminal Block Mining Simulation Game
$1.00 CAD
Terminal Block Mining Simulation Game
Intro To 'nproc' Command In Linux
Intro To 'nproc' Command In Linux
Published 2023-07-15
Intro To 'comm' Command In Linux
Intro To 'comm' Command In Linux
Published 2023-09-06
How To Force The 'true' Command To Return 'false'
How To Force The 'true' Command To Return 'false'
Published 2023-07-09
A Surprisingly Common Mistake Involving Wildcards & The Find Command
A Surprisingly Common Mistake Involving Wildcards & The Find Command
Published 2020-01-21
A Guide to Recording 660FPS Video On A $6 Raspberry Pi Camera
A Guide to Recording 660FPS Video On A $6 Raspberry Pi Camera
Published 2019-08-01
Intro To 'chroot' Command In Linux
Intro To 'chroot' Command In Linux
Published 2023-06-23
Join My Mailing List
Privacy Policy
Why Bother Subscribing?
  • Free Software/Engineering Content. I publish all of my educational content publicly for free so everybody can make use of it.  Why bother signing up for a paid 'course', when you can just sign up for this email list?
  • Read about cool new products that I'm building. How do I make money? Glad you asked!  You'll get some emails with examples of things that I sell.  You might even get some business ideas of your own :)
  • People actually like this email list. I know that sounds crazy, because who actually subscribes to email lists these days, right?  Well, some do, and if you end up not liking it, I give you permission to unsubscribe and mark it as spam.
© 2025 Robert Elder Software Inc.
SocialSocialSocialSocialSocialSocialSocial
Privacy Policy      Store Policies      Terms of Use