在cp命令中使用通配符[xyz]

时间:2014-12-22 19:17:19

标签: linux macos unix

我想将名为TEST的文件复制到一堆名为1/2 / ... 9 /

的文件夹中

我正在尝试使用

cp -v TEST ./[1-9]/
# which gives the result:
TEST '->' ./9/fractionofanions
cp: omitting directory './1'
.
.
cp: omitting directory './8'

任何人都可以解释为什么它首先只复制到文件夹9,还有任何解决方法来做我需要的工作吗?提前谢谢。

2 个答案:

答案 0 :(得分:3)

cp可以将多个文件复制到目录,但不能将文件复制到多个目录。在这种情况下,您尝试将TEST和目录1-8复制到目录9 / - 请参阅man cp 了解更多信息。

但是,您可以使用以下内容将文件复制到多个目录中,使用find作为帮助程序:

find [1-9] -exec cp file.txt {} \;

答案 1 :(得分:1)

正如您可以在man cp中验证的那样,只能为cp指定一个目标目录。但是你可以使用一个循环:

for target in ./[1-9]/ ; do
    cp -v TEST "$target"
done