将多个文件从一个目录复制到多个其他目录
Copy multiple files from one directory to multiple other directories
我有一个目录结构
Dir_1
Dir_2
Dir_3
Source
。目录 Source
包含文件 File_1.txt
和 File_2.txt
.
我想将目录 Source
中的所有文件复制到所有剩余目录,在本例中为 Dir_1
、Dir_2
和 Dir_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
,然后将文本文件复制到每个子目录中。
希望这对您有所帮助:)
我有一个目录结构
Dir_1
Dir_2
Dir_3
Source
。目录 Source
包含文件 File_1.txt
和 File_2.txt
.
我想将目录 Source
中的所有文件复制到所有剩余目录,在本例中为 Dir_1
、Dir_2
和 Dir_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
,然后将文本文件复制到每个子目录中。
希望这对您有所帮助:)