ziulfer
ziulfer

Reputation: 1369

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

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.

Upvotes: 52

Views: 98798

Answers (3)

Philipp
Philipp

Reputation: 49802

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} .

Upvotes: 84

ghoti
ghoti

Reputation: 46826

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.

Upvotes: 5

zbyszek26104
zbyszek26104

Reputation: 437

Try this one:

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

Upvotes: 3

Related Questions