scp を使用してスパース ファイルをコピーする方法は?

scp を使用してスパース ファイルをコピーする方法は?

scpスパース ファイルをコピーできるオプションはありますか?

次のコマンドは で動作しますが、スパース ファイルをコピーするsshオプションを探しています。SCP

tar -Szcf - /home/myself/test/ | \
  ssh myself@myserver 'tar -C /home/myself/test_scp -zvxf -'

答え1

scpスパースファイルはサポートされていません。rsync代わりに を使用してください。

rsync -aS /home/myself/test/ myself@myserver:

答え2

SFTP 経由でも実行できるはずですが、その機能をサポートする SFTP クライアントは知りません。

アップデート: 私はその機能をPerlモジュールの開発バージョンに追加しましたNet::SFTP::外部. 例:

#!/usr/bin/perl

use strict;
use Net::SFTP::Foreign;

@ARGV == 3 or die <<EOU;
Usage:
  sparse_put <host> <src> <dst>

my ($host, $src, $dst) = @ARGV;

$s = Net::SFTP::Foreign->new($host, autodie => 1);
$s->put($src, $dst, sparse => 1);

答え3

あなたは付け加えられます

--sparse=常に

SCP-10 ...コマンドですが、反対側に通常のファイルがコピーされます (スパースなし)。

答え4

このオプションを scp に追加するだけです:

--sparse=always

これは cp のマニュアルページに記載されていますが、scp でも機能します。

関連情報