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 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.
$ 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 $
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.
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 does not exist, the
cp command will create it.
mv command moves files in a similar way to
cp. It also doubles as a way to rename a file:
$ mv originalFile newFile $
originalFile to have the name
newFile. You can move entire directories without a recursive flag:
$ mv directory1 directory2 $
myth, you will be asked before overwriting files with
mv, but this is not normally the case on other systems, so be careful!