bash:为什么我不能将 3 个文件复制到 3 个与文件共享名称的目录中?

bash:为什么我不能将 3 个文件复制到 3 个与文件共享名称的目录中?

所以如果我能做到这一点:

$ mkdir ./blah_{007,011,090}

最终得到三个目录......

为什么我不能这样做...

cp ../blah_{007,011,090}.swf ./blah_{007,011,090}_src

并将文件复制到3个目录中?

答案1

你正在有效地运行:

cp ../blah_007.swf ../blah_011.swf  ../blah_090.swf ./blah_007_src ./blah_011_src ./blah_090_src

我相信上面的命令与以下命令不同的原因是显而易见的:

cp ../blah_007.swf ./blah_007_swc
cp ../blah_011.swf ./blah_011_swc
cp ../blah_090.swf ./blah_090_swc

如果你想要后者,请循环cp

for f in blah_{007,011,090}
do
  cp ../"$f.swf" "$f"_swc
done

答案2

man cp

   cp [OPTION]... [-T] SOURCE DEST
   cp [OPTION]... SOURCE... DIRECTORY
   cp [OPTION]... -t DIRECTORY SOURCE...

DEST它仅显示与相比的单个属性SOURCE...(请参阅...)。该如何cp知道什么时候SOURCES结束,什么时候DEST开始。

使用for- 循环。

相关内容