Copiando vários arquivos no Linux

Copiando vários arquivos no Linux

Eu tenho uma máquina Linux com pastas nomeadas numericamente. Como posso copiar com segurança intervalos dessas pastas para outro servidor? A máquina de origem executa o tcsh, o bash de destino. No momento, no diretório que contém os dados que desejo copiar, estou utilizando o seguinte comando:

scp -r [2042-2046] user@target:home/user/destination_folder

A máquina de origem pede minha senha de destino e parece copiar arquivos, mas nada chega na máquina de destino. Não há erros. Se, no entanto, eu substituir o intervalo de pastas por um único nome de pasta, a cópia funcionará bem:

scp -r 2042 user@target:home/user/destination_folder

no entanto, isso significaria repetir o comando scp 5 vezes e inserir minha senha sempre, o que parece muito ineficiente, especialmente para intervalos maiores.

Responder1

O alcance

[2042-2046]

parece ser interpretado como arquivo 2 e arquivo 6.

O seguinte fornece o intervalo necessário:

204[2-6]

Responder2

Você poderia usar um fluxo tar sobre SSH:

tar cvf --include='204[2-6]' - . | ssh user@target "cd /home/destination/folder; tar xvf -"

Responder3

Use uma festaexpansão de cintaexpressão:

scp -r {2042..2046} user@target:home/user/destination_folder

Observe que a expansão das chaves aconteceantesexpansão de parâmetro, então você não pode escrever isto:

start=2042
end=2046
scp -r {$start..$end} user@target:home/user/destination_folder

sem umeval

informação relacionada