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

问题描述:

我想从一个特定的目录复制多个文件,一旦我在另一个目录中。为了澄清我要做到以下几点,在一次(一个命令):如何使用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/* .,因为dir2n文件(n>4)

顺便说一句,我使用bash

谢谢。

+1

CP -t目录源是一种选择 这可以用于所有的/选择的文件从到另一个目录复制.... – Xander 2012-03-29 05:48:05

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

或(Bash中)

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

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

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

感谢 实际上在现实情况下,文件名是完全不同的。 'cp ../dir5/dir4/dir3/dir2/[march april may] .' will not work – ziulfer 2012-03-28 21:24:12

+1

为什么不告诉我们真实情况呢? – Philipp 2012-03-28 21:25:27

+0

我编辑了我以前的评论 – ziulfer 2012-03-28 21:30:08

试试这个:

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

只适用于bash。 OP没有指定他使用的是什么外壳。 – Graham 2012-03-28 21:24:57

+0

我使用的是bash – ziulfer 2012-03-28 21:37:06

如果所有要复制的文件都是的格式,你可以使用类似:

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

注意,这会复制file5,但它也将复制file0abc

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

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

注意的是,虽然这看起来像一个正则表达式的一部分,不是。

+0

,实际上在实际情况下,这些文件的名称是完全不同的。 'cp ../dir5/dir4/dir3/dir2/[march april may] .' will not work – ziulfer 2012-03-28 21:31:40

+0

但这不是你的问题。 – ghoti 2012-03-29 11:14:17

+0

也想提一下'cp ../dir5/dir4/dir3/dir2/F* .'工作。这适用于只有文件名中的起始字母相同的情况。只有那些以'F'开头的文件才能被复制 – smac89 2014-12-25 07:22:34