Copiar ficheros por "scp" cuando el nombre contiene ":"

Si intentamos copiar un fichero que contiene el carácter : (dos puntos) por scp, obtendremos el siguiente error:

jcea@jcea:/tmp/ram$ scp Prueba_de_fichero_con_\:_en_el_nombre datos:/tmp/
ssh: Could not resolve hostname prueba_de_fichero_con_: Name or service not known

El problema es que scp interpreta un parámetro con : como el nombre de un servidor al que conectar por SSH.

La solución es que le quede claro que se trata de un nombre de fichero. Podemos poner el path absoluto o relativo del fichero. Por ejemplo:

jcea@jcea:/tmp/ram$ scp ./Prueba_de_fichero_con_\:_en_el_nombre datos:/tmp/
Prueba_de_fichero_con_:_en_el_nombre          100%    0     0.0KB/s   00:00

El tema me traía loco hasta que encontré esta respuesta, bastante literal: How can I scp a file with a colon in the file name? Se ve que no soy el único que se ha tropezado con el problema.

Espero que este truco te resulte útil.

PS: Este truco se puede utilizar con otros comandos, como rsync o la familia FFmpeg.