How to Copy a File to Multiple Directories in Linux?

Copying a file to multiple directories simultaneously is a common task in Linux system administration. This article demonstrates several efficient methods to copy a file to multiple target directories using command-line tools like cp, xargs, and find.

Method 1: Using cp with xargs

The most straightforward approach combines echo, xargs, and cp to copy a file to multiple directories in one command.

Basic Syntax

echo dir1 dir2 dir3 | xargs -n 1 cp file1

This command works by:

  • echo outputs the directory names separated by spaces

  • xargs -n 1 processes one directory at a time

  • cp file1 copies the file to each directory

Practical Example

$ echo Music Videos Desktop | xargs -n 1 cp httpstat.py

This copies httpstat.py to the Music, Videos, and Desktop directories.

Verification

To verify the file was copied successfully:

$ ls Music/ Videos/ Desktop/ | grep httpstat.py
Music/httpstat.py
Videos/httpstat.py  
Desktop/httpstat.py

Method 2: Using cp with find

The find command provides more control and can handle complex directory structures.

Basic Syntax

find dir1 dir2 dir3 -type d -exec cp file1 {} \;

This command:

  • find locates the specified directories

  • -type d ensures only directories are selected

  • -exec cp file1 {} \; executes the copy command for each found directory

Practical Example

$ find Music Desktop Documents -type d -exec cp httpstat.py {} \;

Method 3: Using Brace Expansion (Bash)

Bash brace expansion provides a concise alternative:

$ cp file1 {dir1,dir2,dir3}/

Example:

$ cp httpstat.py {Music,Videos,Desktop}/

Comparison of Methods

Method Advantages Best Use Case
cp + xargs Simple, readable Fixed list of directories
cp + find Handles complex patterns, recursive Dynamic directory discovery
Brace expansion Most concise syntax Small number of known directories

Advanced Options

For preserving file attributes and permissions:

$ echo dir1 dir2 dir3 | xargs -n 1 cp -p file1

The -p flag preserves timestamps, ownership, and permissions.

Conclusion

Linux provides multiple efficient methods to copy files to multiple directories. The xargs approach is ideal for simple cases, while find offers more flexibility for complex scenarios. Choose the method that best fits your specific requirements and directory structure.

Updated on: 2026-03-17T09:01:38+05:30

701 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements