¿Cómo copio un archivo con scp con caracteres especiales?


9

Estoy tratando de copiar un archivo que tiene dos puntos y puntos, por ejemplo, con:

scp "test.json-2014-08-07T11:17:58.662378" remote:tmp/

scp test.json-2014-08-07T11\:17\:58.662378 remote:tmp/

y combinaciones con archivo:

scp "file:///home/.../test.json-2014-08-07T11:17:58.662378" remote:tmp/

Supongo que scp intenta interpretar partes del archivo como un servidor o un número de puerto. ¿Cómo evito eso?

Si cambio el nombre del archivo a test.json, entonces scp test.json remote:tmp/funciona bien, pero ni siquiera scp test*62378 remote:tmp/funciona.


Permítanme señalar que una "solución" obvia es cambiar el nombre del archivo, copiarlo y volver a cambiar el nombre en el servidor remoto.
— Finn Årup Nielsen

Una explicación de por qué los globos ( *) no funcionan. Se realiza en shell, por lo que se pasará exactamente el mismo texto (argumento) scp. Debe cambiar el texto (argumento) al que se pasa scp. (vea la respuesta a continuación, para saber a qué cambiar el argumento de texto).
— ctrl-alt-delor

Cabe señalar que :es un carácter de nombre de archivo ilegal en OSX, por lo que si alguna vez necesita transferir estos archivos, debe tenerlo en cuenta.
— Daenyth

En cygwin, si el nombre de archivo comienza con un guión, puede prefijar el archivo con un guión doble, por ejemploscp -- -1.JvSbrpchxuk.png user@example.com:/tmp
— Shane Rowatt,

Respuestas:


19

Use ./antes de su nombre de archivo:

scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/

Eso hace scpsaber que es un archivo. Sin él, scppiensa que es un nombre de host debido a los dos puntos.


4

Usa el camino pretendiendo ./y escapa de los tuyos :. Cyberiti tiene más información . Ejemplo:

scp ./file\:with\:colons.txt remoteserver:

2
No necesitas escapar del colon.
— Cuonglm

Su fuga :es a nivel de shell, no a nivel de scp.
— ctrl-alt-delor

Sí, necesitas escapar. Al menos en mi caparazón necesito el escape.
— Finn Årup Nielsen

@ FinnÅrupNielsen: ¿Cuál es tu caparazón? No necesita escapar de dos puntos, el shell agrega una barra invertida para usted. Puede eliminarlos y ver que aún funciona.
— Cuonglm

Estaba equivocado. scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/realmente funciona! Lo siento.
— Finn Årup Nielsen

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.