How to copy multiple files from a different directory using cp?

LinuxBashCp

Linux Problem Overview


I want to copy multiple files from a specific directory once I am in another directory. To clarify I want to do the following, at once (one command):

cp ../dir5/dir4/dir3/dir2/file1 .
cp ../dir5/dir4/dir3/dir2/file2 .
cp ../dir5/dir4/dir3/dir2/file3 .
cp ../dir5/dir4/dir3/dir2/file4 .

I can't use cp ../dir5/dir4/dir3/dir2/* . because in dir2 there are n files (n>4)

By the way, I'm using bash.

Thanks.

Linux Solutions


Solution 1 - Linux

cp ../dir5/dir4/dir3/dir2/file[1234] .

or (in Bash)

cp ../dir5/dir4/dir3/dir2/file{1..4} .

If the file names are non-contiguous, you can use

cp ../dir5/dir4/dir3/dir2/{march,april,may} .

Solution 2 - Linux

If all the files you want to copy are in the pattern of file{number}{othertext}, you could use something like:

cp ../dir5/dir4/dir3/dir2/file[0-9]* .

Note that this will copy file5, but it will also copy file0abc.

If you would like to copy ONLY those four files (and not the {othertext} ones), you can use:

cp ../dir5/dir4/dir3/dir2/file[1-4] .

Note that while this looks like part of a regular expression, it is not.

Solution 3 - Linux

Try this one:

 cp ../dir5/dir4/dir3/dir2/file{1..4}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionziulferView Question on Stackoverflow
Solution 1 - LinuxPhilippView Answer on Stackoverflow
Solution 2 - LinuxghotiView Answer on Stackoverflow
Solution 3 - Linuxzbyszek26104View Answer on Stackoverflow