Como copiar um arquivo esparso usando scp?

Como copiar um arquivo esparso usando scp?

Temos alguma opção para scpcopiar um arquivo esparso?

O comando a seguir funciona com ssh, mas estou procurando uma opção que SCPcopie um arquivo esparso.

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

Responder1

scpnão suporta arquivos esparsos. Use rsyncem vez disso.

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

Responder2

Você também deve poder fazer isso por meio de SFTP, embora eu não conheça nenhum cliente SFTP que suporte esse recurso.

Atualizar: adicionei esse recurso à versão de desenvolvimento do meu módulo PerlLíquido::SFTP::Estrangeiro. No exemplo:

#!/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);

Responder3

Você pode adicionar

--esparso = sempre

parascpcomando, mas copiará o arquivo normal do outro lado (não esparso).

Responder4

Basta adicionar esta opção ao scp:

--sparse=always

Está listado na página de manual do cp, mas também funciona para o scp.

informação relacionada