scp
にスパースファイルをコピーできるオプションはありますか?
次のコマンドはssh
で機能しますが、スパースファイルをコピーするSCP
のオプションを探しています。
tar -Szcf - /home/myself/test/ | \
ssh myself@myserver 'tar -C /home/myself/test_scp -zvxf -'
scp
はスパースファイルをサポートしていません。代わりにrsync
を使用してください。
rsync -aS /home/myself/test/ myself@myserver:
あなたは付け加えられます
--sparse = always
to scpコマンドですが、通常のファイルを反対側にコピーします(スパースなし)。
このオプションをscpに追加するだけです:
--sparse=always
これはcpのmanページにリストされていますが、scpでも機能します。
SFTPを介してそれを実行できるはずですが、その機能をサポートするSFTPクライアントは知りません。
更新:この機能を私のPerlモジュールの開発バージョンに追加しました Net :: SFTP :: Foreign 。例では:
#!/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);