Which command would you use to copy all files and subdirectories in a directory?

This guide will show you how to copy files and directories in Linux by executing commands from the command line. Furthermore, the commands listed below detail how to create system-wide backups or filter out and copy only specific files.

how to copy files and directories in linux

Using the cp Command to Copy Files and Directories in Linux

The

cp my_file.txt my_file2.txt
2 command is the primary method for copying files and directories in Linux. Virtually all Linux distributions can use
cp my_file.txt my_file2.txt
2. The basic format of the command is:

cp [additional_option] source_file target_file

For example:

cp my_file.txt my_file2.txt

This Linux command creates a copy of the my_file.txt file and renames the new file to my_file2.txt.

By default, the

cp my_file.txt my_file2.txt
2 command runs in the same directory you are working in. However, the same file cannot exist twice in the same directory. You’ll need to change the name of the target file to copy in the same location. Some users will add _old, some will add a number, and some will even change the three-letter extension (e.g., .bak instead of .txt).

You may not get a warning before Linux overwrites your file – be careful, or see below for the

cp my_file.txt my_file2.txt
5 option.

Additional Options

Additional options can be used in combination with the

cp my_file.txt my_file2.txt
2 command:

  • cp my_file.txt my_file2.txt
    7  verbose: shows the progress of multiple copied files
  • cp my_file.txt my_file2.txt
    8  preserve: keeps the same attributes, like creation date and file permissions
  • cp my_file.txt my_file2.txt
    9  force: force the copy by deleting an existing file first
  • cp my_file.txt my_file2.txt
    5  interactive: prompts for confirmation, highly advised
  • cp my_file.txt /new_directory
    1 recursive: copies all files and subfolders in a directory
  • cp my_file.txt /new_directory
    2 update: copy only if source is newer than destination

Note: The

cp my_file.txt /new_directory
3 (preserve) option forces the system to preserve the following source file attributes: modification time, access time, user ID (UID), group ID (GID), file flags, file mode, access control lists (ACLs), and extended attributes (EAs).

How to Copy File to Another Directory in Linux

To copy a file from the directory you’re working in to a different location, use the command:

cp my_file.txt /new_directory

You don’t need to rename the file unless there’s already one with the same name in the target directory.

To specify a path for the source file:

cp /etc/my_file.txt /new_directory

This lets you copy without having to change directories. The

cp my_file.txt my_file2.txt
2 command will create the /new_directory if it doesn’t exist.

To rename and copy a file to a different path:

cp my_file.txt /new_directory/my_file2.txt

Copying a file in Linux with cp.

This option is useful for creating backups of configuration files, or for copying data to a storage device.

Copy Multiple Files from One Directory to Another in Linux

You may need to copy more than one file at a time.

List each file to be copied before the target directory:

cp my_file.txt my_file2.txt my_file3.txt /new_directory

This example created a copy of all three files in the /new_directory folder.

Use a wildcard to specify all files that share a string of characters:

cp /pictures/*.jpg /new_directory

This would find all the files with the .jpg extension in the /pictures directory, and copy them into the /new_directory folder.

To copy an entire folder and its subfolders and files, use the

cp my_file.txt /new_directory
1 option:

cp –R /documents /new_directory

Copying and renaming a folder in Linux.

cp my_file.txt /new_directory
1 stands for recursive, which means “everything in that location.” This would copy all the files, as well as all the directories, to the /new_directory folder.

Copy Using rsync Command

The rsync command in Linux is used to synchronize or transfer data between two locations. Usage is similar to

cp my_file.txt my_file2.txt
2, but there are a few key differences to note.

To copy a single file, enter the following into a terminal:

rsync –a my_file.txt /new_directory/my_file_backup.txt
  • The
    cp my_file.txt /new_directory
    8 option means all, and is included with
    cp my_file.txt /new_directory
    9 commands – this preserves subdirectories, symbolic links, and other metadata.
  • Replace the my_file.txt file in the working directory.
  • Replace /new_directory/ with the destination.
  • Using my_file_backup.txt as the target indicates the file will be renamed during the copy.

To copy a directory with rsync, enter the following:

rsync –a /etc/docker/ /home/backup/docker/

This copies the contents of the /etc/docker/ directory to /home/backup/docker/. Make sure to keep the slashes. Omitting the slash on the source directory will copy the contents into a subdirectory.

To omit files from being copied, check out our guide on how to exclude files and directories in data transfer using rsync command.

Other Options

The

cp /etc/my_file.txt /new_directory
0 command is a handy partner to the
cp my_file.txt my_file2.txt
2 command in Linux.

To list the contents of a directory enter the command:

cp my_file.txt my_file2.txt
0

The example above displays all the files in /directory. Use this command after copying to verify the files were copied successfully.

To change directories, use

cp /etc/my_file.txt /new_directory
2 and the name of the directory. For example:

cp my_file.txt my_file2.txt
1

The command prompt will change to display that you’ve changed directories.

Conclusion

Now you understand how to copy files in Linux. The

cp my_file.txt my_file2.txt
2 command is a versatile and powerful tool for managing and backing up files.

Which command will you choose to copy all files and subdirectories?

To copy all of a directory's files and subdirectories, use the xcopy command.

Which command would you use to copy all files and subdirectories in a directory including empty subdirectories?

The easiest way to copy a folder with all files and subfolders is to run this command: robocopy c:\temp\source c:\temp\destination /E /DCOPY:DAT /R:10 /W:3. The /E switch tells Robocopy to copy all subfolders, including empty ones. If you don't want to copy empty subfolders, use the /S switch.

What is the command to list all files and subdirectories in a directory?

Use the ls command to display the contents of a directory. The ls command writes to standard output the contents of each specified Directory or the name of each specified File, along with any other information you ask for with the flags.

How copy all files and subdirectories in Linux?

You use the cp command for copying files from one location to another. This command can also copy directories (folders). [file/directory-sources] specifies the sources of the files or directories you want to copy. And the [destination] argument specifies the location you want to copy the file to.