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.
*
) 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 pasascp
. (vea la respuesta a continuación, para saber a qué cambiar el argumento de texto).:
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.scp -- -1.JvSbrpchxuk.png [email protected]:/tmp
Respuestas:
Use
./
antes de su nombre de archivo:Eso hace
scp
saber que es un archivo. Sin él,scp
piensa que es un nombre de host debido a los dos puntos.fuente
Usa el camino pretendiendo
./
y escapa de los tuyos:
. Cyberiti tiene más información . Ejemplo:fuente
:
es a nivel de shell, no a nivel de scp.scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/
realmente funciona! Lo siento.Aparentemente, no probé esta versión con el prefijo de ruta:
esto también funciona:
Desde https://twitter.com/h0pbeat/status/497319751031353344 y http://www.cyberciti.biz/faq/rsync-scp-file-name-with-colon-punctuation-in-it/ Gracias.
(como los usuarios anteriores lograron responder antes que yo)
fuente