是否可以使用cp命令将一个文件复制到多个目录?
我尝试了以下方法,但没有奏效:
cp file1 /foo/ /bar/
cp file1 {/foo/,/bar}
我知道可以使用for循环,或者find。但是可以使用gnu cp命令吗?
是否可以使用cp命令将一个文件复制到多个目录?
我尝试了以下方法,但没有奏效:
cp file1 /foo/ /bar/
cp file1 {/foo/,/bar}
我知道可以使用for循环,或者find。但是可以使用gnu cp命令吗?
当前回答
ls -d */ | xargs -iA cp file.txt A
其他回答
如果你所有的目标目录都匹配一个路径表达式——比如它们都是path/to的子目录——那么就像这样使用find和cp的组合:
find ./path/to/* -type d -exec cp [file name] {} \;
就是这样。
例如,如果你在目标文件夹的父目录中,你可以这样做:
I用$(ls)表示;执行cp source文件$i;完成
不,cp可以复制多个源,但只会复制到单个目标。您需要安排多次调用cp—每个目的地一次—用于您想要做的事情;就像你说的,使用循环或其他工具。
假设要将fileName.txt复制到当前工作目录中的所有子目录。
通过ls获取所有子目录的名称,并将它们保存到某个临时文件中,例如allFolders.txt ls > allFolders.txt 打印列表并将其传递给命令xargs。 cat allFolders.txt | xargs -n 1 cp fileName.txt
使用bash脚本
DESTINATIONPATH[0]="xxx/yyy"
DESTINATIONPATH[1]="aaa/bbb"
..
DESTINATIONPATH[5]="MainLine/USER"
NumberOfDestinations=6
for (( i=0; i<NumberOfDestinations; i++))
do
cp SourcePath/fileName.ext ${DESTINATIONPATH[$i]}
done
exit