Tengo una máquina Linux con carpetas nombradas numéricamente. ¿Cómo puedo copiar de forma segura rangos de estas carpetas a otro servidor? La máquina de origen ejecuta tcsh, el bash de destino. Por el momento, desde el directorio que contiene los datos que quiero copiar, estoy usando el siguiente comando:
scp -r [2042-2046] user@target:home/user/destination_folder
La máquina de origen solicita mi contraseña para el destino y parece copiar archivos, pero no llega nada a la máquina de destino. No hay errores. Sin embargo, si reemplazo el rango de carpetas con un solo nombre de carpeta, entonces la copia funciona bien:
scp -r 2042 user@target:home/user/destination_folder
sin embargo, esto significaría repetir el comando scp 5 veces e ingresar mi contraseña cada vez, lo que parece muy ineficiente, especialmente para rangos más grandes.
Respuesta1
El rango
[2042-2046]
parece interpretarse como el archivo 2 y el archivo 6.
A continuación se proporciona el rango requerido:
204[2-6]
Respuesta2
Podrías usar una secuencia tar a través de SSH:
tar cvf --include='204[2-6]' - . | ssh user@target "cd /home/destination/folder; tar xvf -"
Respuesta3
Usa un golpeexpansión de corséexpresión:
scp -r {2042..2046} user@target:home/user/destination_folder
Tenga en cuenta que la expansión de la llave ocurreantesexpansión de parámetros, por lo que no puedes escribir esto:
start=2042
end=2046
scp -r {$start..$end} user@target:home/user/destination_folder
sin uneval