¿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.