O intervalo
[2042-2046]
parece ser interpretado como arquivo 2 e arquivo 6.
A seguir, o intervalo necessário:
204[2-6]
Eu tenho uma máquina linux com pastas nomeadas numericamente. Como posso copiar com segurança os 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 eu quero copiar, estou usando o seguinte comando:
scp -r [2042-2046] user@target:home/user/destination_folder
A máquina de origem solicita minha senha para o destino e parece copiar os 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 colocar minha senha toda vez, o que parece muito ineficiente, especialmente para intervalos maiores.
O intervalo
[2042-2046]
parece ser interpretado como arquivo 2 e arquivo 6.
A seguir, o intervalo necessário:
204[2-6]
Você pode usar um fluxo de tarts por SSH:
tar cvf --include='204[2-6]' - . | ssh user@target "cd /home/destination/folder; tar xvf -"
Use uma expressão de expansão de da bash:
scp -r {2042..2046} user@target:home/user/destination_folder
Note que a expansão de chaves acontece antes de expansão do 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 um eval