如何使用 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 模块的开发版本中网络::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

你可以加

--稀疏=总是

SCP命令,但它会在另一端复制常规文件(无稀疏)。

答案4

只需将此选项添加到 scp:

--sparse=always

它在 cp 手册页上列出,但也适用于 scp。

相关内容