¿Por qué no puedo copiar con scp cuando estoy usando *
caracteres en la ruta?
scp SERVERNAME:/DIR/* .
¿Qué configuración necesita SCP para permitir *
la ruta?
ACTUALIZACIÓN: el problema no está en el lado del servidor; pscp está tratando de usar SCPv1, y es por eso que el mensaje de error:
Respuestas:
Debe pasar un escape literal
scp
para evitar que la máquina remota se trate*
como un globo (observe que se cita doblemente):fuente
touch /tmp/abcd.1234; scp 'localhost:/tmp/abcd.\*' ./
:scp: /tmp/abcd.*: No such file or directory
pscp
del lado del cliente para permitir el bloqueo remoto.Encontré que el consejo de Patrick era correcto, aunque la respuesta de Chris me llevó por el buen camino. Use comillas y luego no necesita la barra invertida antes del asterisco.
scp: /tmp/file_num*.csv: No existe tal archivo o directorio
juicios_para_trabajo_171642.csv 100% 32KB 32.0KB / s 00:00
juicios_para_trabajo_172394.csv 100% 548KB 182.6KB / s 00:03
fuente
*
), no sobre cómo hacerlo solo en el control remoto.NOTA: La solución ofrecida a continuación ha sido probada y se sabe que funciona correctamente.
Las comillas simples romperán la expansión variable si has alias parte de la ruta que estás bloqueando.
Aquí hay una secuencia de comandos que usa comillas DOBLES para el caso de uso del nombre de archivo global command-configure_ .tar.gz * usando una ruta alias con una variable:
Después del cierre de la comilla doble, el destino del directorio local se construye simplemente extrayendo el directorio de inicio del usuario especificado de / etc / passwd .
El comando scp mismo está precedido
sshpass
y-o StrictHostKeyChecking=no
automatiza completamente elscp
comando sin interacción del usuario. Parece complicado pero mejor que las rutas de codificación dura que se espera que cambien de vez en cuando.Anyhoo, un ejemplo que usa comillas dobles donde las variables en la ruta que estás buscando deben expandirse. HTH
fuente