如何使用cp从不同的目录复制多个文件?

时间:2012-03-28 21:20:04

标签: linux bash cp

我想在另一个目录中复制特定目录中的多个文件。为了澄清我想立即执行以下操作(一个命令):

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 个答案:

答案 0 :(得分:78)

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

或(在Bash中)

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

如果文件名不连续,可以使用

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

答案 1 :(得分:5)

如果要复制的所有文件都采用file{number}{othertext}模式,则可以使用以下内容:

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

请注意,这会复制file5,但也会复制file0abc

如果您只想复制这四个文件(而不是{othertext}文件),您可以使用:

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

请注意,虽然此看起来像正则表达式的一部分,但它不是。

答案 2 :(得分:3)

试试这个:

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