Как скопировать несколько файлов из другого каталога с помощью cp? - PullRequest
49 голосов
/ 29 марта 2012

Я хочу скопировать несколько файлов из определенного каталога, когда я нахожусь в другом каталоге. Чтобы уточнить, я хочу сделать следующее, сразу (одна команда):

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

Я не могу использовать cp ../dir5/dir4/dir3/dir2/* ., потому что в dir2 есть n файлов (n>4)

Кстати, я использую bash.

Спасибо.

Ответы [ 3 ]

78 голосов
/ 29 марта 2012
cp ../dir5/dir4/dir3/dir2/file[1234] .

или (в Баш)

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

Если имена файлов несмежные, вы можете использовать

cp ../dir5/dir4/dir3/dir2/{march,april,may} .
5 голосов
/ 29 марта 2012

Если все файлы, которые вы хотите скопировать, имеют шаблон file{number}{othertext}, вы можете использовать что-то вроде:

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

Обратите внимание, что это скопирует file5, но также скопирует file0abc.

Если вы хотите скопировать ТОЛЬКО эти четыре файла (а не {othertext}), вы можете использовать:

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

Обратите внимание, что в то время как этот выглядит как часть регулярного выражения, это не так.

3 голосов
/ 29 марта 2012

Попробуйте это:

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