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