How To Use Linux To Copy, Move Or Delete Files


There are some big advantages to performing basic copy, move and delete functions through the Linux command line rather than a standard graphical user interface (GUI).

For starters, it's much faster and you can use it to automate file management operations with scripts or batch files.

But the real plus of using the Linux command line is that operations that would be difficult in a GUI window become far easier. 

Today, I'm here to tell you how to copy, move and delete files from the Linux command line:

1. How to Copy Files Using the cp Command

cp is the Linux copy command. Using it is extremely straightforward, as it only requires two arguments.

cp source destination

However, just because using cp to perform a basic copy function is simple, it doesn't mean there isn't plenty of room for customization. There are more than ten different modifiers which can be used by calling cp in the following manner.

cp [option] source destination

Here are some of the Linux copy file modifiers you can use:

  • cp -a: The archive modifier, it will preserve any copied files in their current state.
  • cp -f: The force option will ensure the copy is completed by overwriting identical files.
  • cp -i: This is the interactive option which will display an overwrite prompt for identical files.
  • cp -l: Creates a file that is hard linked to the source file, rather than a copy of it.
  • cp -L: This creates a soft link to the directory of the source file.
  • cp -n: This prevents overwriting of any identical files.
  • cp -p: Create a copy with the same modification and permissions as the original file.
  • cp -r: Perform a recursive copy that includes all folders and subdirectories of the source material.
  • cp -u: The update modification only copies the source file if it's more recent than the destination file.
  • cp -v: The v stands for verbose. This option will display update messages during the copy.

The recursive cp -r variant is the most important to remember. In a graphical interface, normally when a folder is copied, so are all subdirectories. Linux doesn't do this by default. So, to copy directory Linux, make sure you add the -r!

The archive -a command is also a versatile extension. It will produce a copy as close as possible to the original file that will include the same metadata and directory tree.

1.1 Copy Single Files with cp

If you want to Ubuntu copy file within your working directory, you can simply use the following line of code. In this case, I'll use document.txt as my example file.

cp document.txt document-2.txt

This will create a copied version of your file named document-2.txt which will be stored alongside the original in the working directory. However, there's no need for you to copy the file within the same directory.

cp /home/user/documents/document.txt ~/copied-documents/document.txt

In this case, the copied file will be placed in the copied-documents folder. Note that I used the tilde shortcut here to refer to the home user directory. You can do this at any time in the Unix command terminal.

1.2 Copy Multiple Files with cp

There are two different ways cp can be used to copy multiple files to the same directory. The most basic method is to simply list multiple files in the source section of the command and then provide a destination directory instead of a destination file name.

cp ~/document.txt ~/picture.jpg ~/copied-documents

In the example above, the document and picture file will both be copied to the copied-documents folder from the home user root directory. If you are attempting to copy multiple files with similar names, you can use the wildcard asterisk modifier. For example, if you want to copy files named 'document-1.txt' and 'document-2.txt', you can do the following.

cp ~/document-*.txt ~/copied-documents

The * tells Unix to copy any text files in the home directory that has a name beginning with 'document-'.

2. How to Move Files Using the mv Command

mv operates very similarly to cp, requiring only two arguments. Self-evidently, instead of just creating a copy of the source file, it will delete the original and replicate it in a different directory.

mv source destination

Once again, it's possible to change the way in which files are moved with an optional modifier.

mv [option] source destination

The modifiers listed for cp are also applicable for mvRemember, the command terminal will automatically list these for you if you call a help command.

mv --help

However, there is one additional mv modification worth knowing about. This is the -b or 'backup' option, which will create a backup of the moved file in the source directory.

2.1 Move Single Files with mv

Once again, you will most commonly use the mv command to transfer files from one directory to another. In the following snippet, you'll find a command to move an example text file.

mv ~/documents/document.txt ~/moved-documents/document.txt

Note that there's no need to keep the name of the file the same. While calling the mv command, you can rename the moved file anything you like.

mv ~/documents/document.txt ~/moved-documents/moved-document.txt

The line above will move the directory of the text file as well as renaming it. And here's a tip, the Linux command line doesn't have a separate renaming function, so if you ever want to rename a file, just use the mv command! For example, if I want to change the name of the document text file, but not its location, I can simply remove the folders from the above line of code.

mv ~/document.txt ~/moved-document.txt

2.2 Move Multiple Files with mv

Just like the cp command, there are two techniques you can use to move more than one file with mv. The first, and most basic, is to simply add multiple source files to the command line.

mv ~/document.txt ~/picture.jpg ~/moved-documents

This will move both the document text file and the picture file to the moved-documents folder. However, you can save yourself time by using the wild card operator.

mv ~/*.txt ~/text-files

This code will move every text file from the user's home folder into the text-files folder. Note that if that folder doesn't exist already, this operation will create it.

3. How to Delete Files Using the rm command

The rm or 'remove' command is used to delete files from the Linux command line. If you paid attention to how to use the copy and move operators, you'll be on familiar ground here. However, while those functions require two input arguments, you only need one to perform a deletion operation.

rm file-to-be-deleted

Once again, you can use the same modification options I listed in section one with the rm function. If you ever forget what they are, just ask in the command line for help!

rm --help

3.1 Delete Single Files with rm

Using the rm function to delete a file or directory is extremely simple. If, for example, we wanted to delete a file within a folder called text-files, contained in the home user folder, this line of code would suffice.

rm ~/text-files/document.txt

rm can be used to delete directories too. If we wanted to remove the actual text-files folder itself, we could run the following operation.

rm ~/text-files/

Note that when you call an rm operation on a directory, by default, only the subdirectories and files within the directory will be removed. That makes the recursive -r modifier one of the most useful rm options to know about.

rm -r ~/text-files

This line will not only delete the files contained in the text-files directory, but will remove the directory itself, too.

3.2 Delete Multiple Files with rm

To delete more than one file with rm, simply add extra files or folders as new arguments. The snippet below will delete both the document and picture files in the user home directory.

rm ~/document.txt ~/picture.jpg

You can also use the * wildcard operator to delete multiple files with the same name or file type. This example code will delete any text files within the text-files folder.

rm ~/text-files/*.txt

But beware! Never ever combine the recursive delete operation with the wildcard operator alone. The following command will delete every file and directory you have permission to modify.

rm -r *

How to Copy, Move and Delete Files in Linux - Conclusion

Now you know how to copy, move and delete files from the Linux command line. If you internalize these commands, you'll be able to perform file operations much faster and create batch commands or scripts.

Remember, if you ever forget how to use a particular operation, you can refer back to this guide or use the man function to open the relevant part of the command line manual:

man [enter command you are unsure of here]

Was this Linux copy file walkthrough useful? If you want to learn about other commands, let me know by commenting below!

An experienced content professional with a creative mind. If I'm not writing, you can probably find me in the backyard playing with dogs or at some weird art show.

Leave a Comment

Get new blog posts by email: