是否可以使用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命令吗?
当前回答
这些答案似乎都比显而易见的要复杂:
for i in /foo /bar; do cp "$file1" "$i"; done
其他回答
ls -d */ | xargs -iA cp file.txt A
如果你想在没有fork命令的情况下执行:
Tee <inputfile file2 file3 fil4…> / dev / null
在我看来,你可以使用以下方法:
ls | xargs -n 1 cp -i file.dat
cp命令的-i选项意味着将询问您是否用file.dat覆盖当前目录下的文件。虽然这不是一个完全自动的解决方案,但它为我工作。
在Mac OS上使用xargs复制到使用通配符的目录,唯一适合我的解决方案是在目录名中使用空格:
find ./fs*/* -type d -print0 | xargs -0 -n 1 cp test
要复制的文件在哪里测试 和。/fs*/*要复制到的目录
问题是xargs将空格视为一个新参数,不幸的是,使用-d或-E更改分隔符的解决方案在Mac OS上不能正常工作。
假设要将fileName.txt复制到当前工作目录中的所有子目录。
通过ls获取所有子目录的名称,并将它们保存到某个临时文件中,例如allFolders.txt ls > allFolders.txt 打印列表并将其传递给命令xargs。 cat allFolders.txt | xargs -n 1 cp fileName.txt