The cp command

Rob

Administrator
Staff member
Joined
Oct 27, 2011
Messages
1,207
Reaction score
2,239
Credits
3,467
To show you how to copy files with Linux we talked about 'cp' in the lesson on aliases. 'cp' is for copying files from one place to another, or for making a duplicate of one file under a different name.

Let's go back to Tony's 'stuff' file For example, if you saved Tony's e-mail attachment to your main /home directory, /home/[your name], you may want to create a directory to keep Tony's files You could make the directory for Tony tonyd (Tony's last name is Dweebweiler)

Type this:

Code:
mkdir tonyd

Then you can do:
Code:
cp stuff tonyd
Remember use your TAB key to save time.

Now you're going to have TWO files named 'stuff' because you copied that file to the directory 'tonyd/' - you didn't move it there. You'll have the original 'stuff' in your home directory and then the copy in /home/[your name]/tonyd/.

You'll be able to tell the difference between the two files because the copy of 'stuff' in the directory 'tonyd' will show a different time. Use the command ls -l stuff on both files to see this.

If you had used the command cp -p instead of just cp you would end up with two identical files in two different places. If you don't want that, there's a better way of doing it so that 'stuff' is only in the directory 'tonyd'. That's themv command. We'll talk about that shortly.

More uses of the 'cp' command

To show you how to copy directories and create duplicates of files. Now let's talk about two more basic uses of the cp command and some short cuts.

You can also copy entire directories to another place. As I mentioned in a previous lesson, you may want to work as two different users for two different jobs. You may be working as 'fred' and your directory 'tonyd' is in the directory /home/bob, where you work as 'bob'

As 'fred', you can use the command:

Code:
cp -r /home/bob/tonyd/ /home/fred/

If you're in your home directory you can use this command

Code:
cp -r /home/bob/tonyd/ ./

To copy the directory 'tonyd' to your home directory.

You may also use the command

Code:
cp -r /home/bob/tonyd/ ~

With the tilde wherever you happen to be and that will automatically copy the directory 'tonyd' to your other home directory.

The other use of 'cp' we talked about was to get a copy of a file with a different name. For example, Tony's file 'stuff' is loaded with jokes. You may want to add some more jokes and then pass it along to another person You could do this:

Code:
cp stuff stuff2

or choose a name that's meaningful for you other than 'stuff2'

Now you have another file that you can add jokes to while you preserve the original file. You can open it in 'pico' and start writing: \"Why did the chicken cross the road...\"

Always remember to use that TAB key and the up and down arrows to save yourself some time.
 


I'm sorry but i can't find the Alias lesson. Could you please give me a link to it?
 
I'm sorry but i can't find the Alias lesson. Could you please give me a link to it?

I don't think there is one in the tutorials section ATM - it may have been one of the old posts that was lost when the site was resurrected by Rob.

But I started a thread about the alias command:
https://www.linux.org/threads/what-are-your-favourite-aliases.12358/

In my initial post, the 1st part explains what aliases are and how to use them. In the 2nd part of it, I list a few aliases which I use often.

Also there is Jarrets post from his Linux+ series:
https://www.linux.org/threads/linux-linux-shell-20-–-alias-command.10805/

I hope that helps!
 
Last edited:
I don't think there is one in the tutorials section ATM - it may have been one of the old posts that was lost when the site was resurrected by Rob.

But I started a thread about the alias command:
https://www.linux.org/threads/what-are-your-favourite-aliases.12358/

In my initial post, the 1st part explains what aliases are and how to use them. In the 2nd part of it, I list a few aliases which I use often.

Also there is Jarrets post from his Linux+ series:
https://www.linux.org/threads/linux-linux-shell-20-–-alias-command.10805/

I hope that helps!
Thank you very much good sir!
 
difference between
cp -r /home/bob/tonyd/ ~ and cp /home/bob/tonyd/ ~
I can't understand...
 
G'day @Rishav Kumar and welcome to linux.org :)

If you go to Terminal and type and enter

Code:
man cp

it will give you the options for the cp command.

If you have established that /home/bob/tonyd/ has NO subfolders, and NO files, you could use

Code:
cp /home/bob/tonyd/ /home/Rishav/

OR

cp /home/bob/tonyd/ ~

If, however, you have established that there are subfolders and/or files within /home/bob/tonyd/ , then you would use

Code:
cp -r /home/bob/tonyd /home/Rishav

OR

cp -r /home/bob/tonyd ~

The -r options means "recursively", that is, it copies everything.

Hope this helps

Chris Turner
wizardfromoz
 

Members online


Top