scp 将文件复制到多个文件夹

scp 将文件复制到多个文件夹

我想 scpfile.txt到远程盒子my-remote-vm-1

里面my-remote-vm-1有两个文件夹conf-1-ver-2conf-2-ver-2.文件夹名称中的整数部分可以来自[0-9].

file.txtscp到这些文件夹的最佳方法是什么?我努力了

  • scp file.txt my-remote-vm-1:/tmp/conf-[0-9]-ver-[0-9]/.
  • scp file.txt my-remote-vm-1:/tmp/conf-*/.

两者都失败了scp: ambiguous target

答案1

要是整数会改变(如您的示例所示)您可以这样做:

echo -e "1\n2\n" |xargs -n1 -i -P0 scp file.txt my-remote-vm-1:/tmp/conf-{}-ver-2

答案2

运行scp一次,然后将其复制到远程服务器本地。

$ scp file.txt my-remote-vm-1:/tmp
$ ssh my-remote-vm-1 'for i in /tmp/conf-[0-9]-ver-[0-9]; do cp /tmp/file.txt "$i"; done'
$ ssh my-remote-vm-1 rm /tmp/file.txt

答案3

可能为时已晚,但也许仅供参考......

find -name "conf-[0-9]-ver-2" -exec scp file.txt {} \;

或更一般的

find -name "conf-*-ver-2" -exec scp file.txt {} \;

相关内容