J'essaie de copier un fichier comportant des deux-points et des points, par exemple avec:
scp "test.json-2014-08-07T11:17:58.662378" remote:tmp/
scp test.json-2014-08-07T11\:17\:58.662378 remote:tmp/
et combinaisons avec fichier:
scp "file:///home/.../test.json-2014-08-07T11:17:58.662378" remote:tmp/
Je suppose que scp essaie d'interpréter des parties du fichier comme un numéro de serveur et / ou de port. Comment puis-je éviter cela?
Si je renomme le fichier en test.json, cela scp test.json remote:tmp/
fonctionne, mais ne scp test*62378 remote:tmp/
fonctionne même pas .
*
) ne fonctionnent pas. Cela se fait en shell, donc exactement le même texte (argument) sera passéscp
. Vous devez modifier le texte (argument) transmis àscp
. (voir la réponse ci-dessous, pour savoir comment changer l'argument de texte en.):
s'agit d'un caractère de nom de fichier illégal sur OSX, donc si vous avez besoin de transférer ces fichiers là-bas, c'est quelque chose à garder à l'esprit.scp -- -1.JvSbrpchxuk.png [email protected]:/tmp
Réponses:
Utilisez
./
avant votre nom de fichier:Cela fait
scp
savoir que c'est un fichier. Sans cela,scp
pense que c'est un nom d'hôte à cause des deux points.la source
Utilisez le chemin en préfixant
./
et échappez au vôtre:
. Cyberiti a plus d'informations . Exemple:la source
:
est au niveau du shell, pas au niveau du scp.scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/
fonctionne vraiment! Désolé.Apparemment, je n'ai pas essayé cette version avec le préfixe du chemin:
cela fonctionne aussi:
Sur https://twitter.com/h0pbeat/status/497319751031353344 et http://www.cyberciti.biz/faq/rsync-scp-file-name-with-colon-punctuation-in-it/ Merci.
(comme les utilisateurs ci-dessus ont réussi à répondre avant moi)
la source