将多个文件从一个目录复制到多个其他目录

Copy multiple files from one directory to multiple other directories

我有一个目录结构

Dir_1
Dir_2
Dir_3
Source

。目录 Source 包含文件 File_1.txtFile_2.txt.

我想将目录 Source 中的所有文件复制到所有剩余目录,在本例中为 Dir_1Dir_2Dir_3.

为此,我使用了

for i in $(ls -d */ | grep -v 'Source'); do echo $i | xargs -n 1 cp ./Source/*; done

。但是,我不断收到消息

cp: target ‘5’ is not a directory

似乎 cp 的目录名有问题,其中包含空格。我该如何解决这个问题(显然,保留目录名称中的空格)?

使用 find 你可以这样做:

find . -mindepth 1 -maxdepth 1 -type d ! -name Source -exec cp Source/*.txt {} \;

此命令在当前目录中搜索所有子目录,不包括 Source,然后将文本文件复制到每个子目录中。

希望这对您有所帮助:)