scpファイルを複数のフォルダにコピーする

scpファイルを複数のフォルダにコピーする

file.txtリモートボックスでscpしたいmy-remote-vm-1

内部にはmy-remote-vm-12つのフォルダがありますconf-1-ver-2conf-2-ver-2フォルダ名の整数部分はから来ることができます[0-9]

file.txtこのフォルダにSCPを適用する最良の方法は何ですか?頑張りました

  • 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 {} \;

関連情報