Comment copier un fichier avec scp avec des caractères spéciaux?


9

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 .


Permettez-moi de noter qu'une certaine "solution" évidente consiste à renommer le fichier, à le copier et à le renommer sur le serveur distant.
Finn Årup Nielsen

Une explication de la raison pour laquelle les globs ( *) 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.)
ctrl-alt-delor

Il convient de noter qu'il :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.
Daenyth

Dans cygwin, si le nom de fichier commence par un trait d'union, vous pouvez préfixer le fichier avec un trait d'union double, par exemplescp -- -1.JvSbrpchxuk.png user@example.com:/tmp
Shane Rowatt

Réponses:


19

Utilisez ./avant votre nom de fichier:

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

Cela fait scpsavoir que c'est un fichier. Sans cela, scppense que c'est un nom d'hôte à cause des deux points.


4

Utilisez le chemin en préfixant ./et échappez au vôtre :. Cyberiti a plus d'informations . Exemple:

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

2
Vous n'avez pas besoin d'échapper au colon.
cuonglm

Votre fuite :est au niveau du shell, pas au niveau du scp.
ctrl-alt-delor

Oui, vous devez vous échapper. Au moins dans ma coquille, j'ai besoin de m'évader.
Finn Årup Nielsen

@ FinnÅrupNielsen: Quelle est votre coquille? Vous n'avez pas besoin d'échapper aux deux points, le shell ajoute une barre oblique inverse pour vous. Vous pouvez les supprimer et voir que cela fonctionne toujours.
cuonglm

J'avais tort. scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/fonctionne vraiment! Désolé.
Finn Årup Nielsen

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.