是否可以使用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命令吗?
当前回答
不——你不能。
我发现在很多情况下我可以使用这个功能,所以我制作了自己的工具来为我做这件事。
http://github.com/ddavison/branch
很简单—— 分支myfile dir1 dir2 dir3
其他回答
ls -db di*/subdir | xargs -n 1 cp文件
如果目录名中有空格,则使用-b,否则将被xargs破坏为不同的项,在echo版本中有此问题
如果你所有的目标目录都匹配一个路径表达式——比如它们都是path/to的子目录——那么就像这样使用find和cp的组合:
find ./path/to/* -type d -exec cp [file name] {} \;
就是这样。
我喜欢复制一个文件到多个目录,就像这样: Cp file1 /foo/;Cp file1 /bar/;Cp file1 /foo2/;Cp file1 /bar2/ . 将一个目录复制到其他目录: Cp -r dir1/ /foo/;Cp -r dir1/ /bar/;Cp -r dir1/ /foo2/;Cp -r dir1/ /bar2/ .使用实例
我知道这就像发出几个命令,但当我想输入一行然后离开一会儿时,它对我来说很有效。
例如,如果你在目标文件夹的父目录中,你可以这样做:
I用$(ls)表示;执行cp source文件$i;完成
如果需要指定要将文件复制到哪个文件夹,可以将find与一个或多个grep组合在一起。例如,要替换任何出现在任何子文件夹中的favicon.ico,你可以使用:
find . | grep favicon\.ico | xargs -n 1 cp -f /root/favicon.ico