Written by Chris Gregg, with modifications by Nick Troccoli
Click here for a walkthrough video.
To copy a file in linux, you use the cp
command:
$ cp SOURCE_FILE DESTINATION
The SOURCE_FILE is the file you want to copy, and the DESTINATION is where you want to copy it to. DESTINATION can be a path with or without a filename. If you leave the filename off, the file will have the same name as the original.
Example:
$ cp assign0/hello.c assign1/hello.c
$
The command above copies the hello.c
file from the assign0
directory into the assign1
directory. If assign1
already exists as a directory, you could make the command shorter as follows:
$ cp assign0/hello.c assign1
$
If the assign1
folder did not already exist, a copy of the hello.c
file would have been made in the current directory, and it would have been named assign1
-- probably not what you wanted to do. So, you have to be careful when copying.
On myth
, your profile has been set up to warn you if a file already exists. This is not the case on many other Linux systems, so be careful! On other systems, copying a file with cp
replaces a file with the same name in that location without asking you or telling you that it has removed the original file (permanently).
To copy an entire directory, use the -r
(recursive) option for cp:
$ cp -r assign0 assign1
$
This will copy the entire assign0 directory into the directory called assign1
. If assign1
does not exist, the cp
command will create it.
The mv
command moves files in a similar way to cp
. It also doubles as a way to rename a file:
$ mv originalFile newFile
$
This renames originalFile
to have the name newFile
. You can move entire directories without a recursive flag:
$ mv directory1 directory2
$
Again, on myth
, you will be asked before overwriting files with mv
, but this is not normally the case on other systems, so be careful!