0

ある UNIX システムから別の UNIX システムに SSH を介してコピーする場合、たとえば、ソースとターゲットを次のようなファイル:

/Users/apple/a --> /home/orange/.
/etc/var/b --> /usr/local/var/.
/other/c --> /wildly/different/.
4

3 に答える 3

1

次のように書けばよいと思います。

mkdir ./tmp/
ln -s /Users/apple/a /etc/var/b /other/c ./tmp/
# Now ./tmp/ has symbolic links to all these files.
# Tar the files to STDOUT, and pipe that over SSH to a
# tar that's reading from STDIN:
tar -ch tmp/* \
  | ssh USER@HOST ' tar -xf -
                    mv tmp/a /home/orange/
                    mv tmp/b /usr/local/var/
                    mv tmp/c /wildly/different/
                    rmdir tmp/
                  '
rm -r tmp/

. . . あまりエレガントではありませんが、必要な SSH 接続は 1 つだけです。

于 2013-04-21T07:08:44.637 に答える
1

取ることができる 1 つの戦略は、ローカル システム (送信側) に「ルート」ディレクトリを作成して、受信側のマシンに配置したいファイル構造を模倣し、それを/別のマシンのルート ( ) にコピーすることです。たとえば、次の一時ディレクトリを「ルート」として構築できます。

/tmp/root
/tmp/root/home/orange/a
/tmp/root/usr/local/var/b
/tmp/root/wildly/different/c

そして、リモート マシンにコピーするだけです。これは 1 回のコピー操作です/tmp/root/

于 2013-04-21T06:58:57.667 に答える