Estou tentando copiar um arquivo que possui dois pontos e pontos, por exemplo, com:
scp "test.json-2014-08-07T11:17:58.662378" remote:tmp/
scp test.json-2014-08-07T11\:17\:58.662378 remote:tmp/
e combinações com o arquivo:
scp "file:///home/.../test.json-2014-08-07T11:17:58.662378" remote:tmp/
Meu palpite é que o scp tenta interpretar partes do arquivo como um servidor e / ou número de porta. Como evito isso?
Se eu renomear o arquivo para test.json, ele scp test.json remote:tmp/
funcionará bem, mas nem scp test*62378 remote:tmp/
funcionará.
*
) não funciona. É feito em shell, portanto, exatamente o mesmo texto (argumento) será passado parascp
. Você precisa alterar o texto (argumento) que é passado parascp
. (veja resposta abaixo, para o que mudar argumento de texto.):
é um caractere ilegal de nome de arquivo no OSX; portanto, se você precisar transferir esses arquivos, há algo a ter em mente.scp -- -1.JvSbrpchxuk.png [email protected]:/tmp
Respostas:
Use
./
antes do seu nome de arquivo:Isso faz
scp
saber que é um arquivo. Sem ele,scp
acha que é um nome de host por causa dos dois pontos.fonte
Use o caminho acrescentando
./
e escapando do seu:
. Cyberiti tem mais informações . Exemplo:fonte
:
é no nível do shell, não no nível do scp.scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/
realmente funciona! Desculpa.Aparentemente, eu não tentei esta versão com o prefixo do caminho:
isso também funciona:
De https://twitter.com/h0pbeat/status/497319751031353344 e http://www.cyberciti.biz/faq/rsync-scp-file-name-with-colon-punctuation-in-it/ Obrigado.
(como os usuários acima conseguiram responder antes de mim)
fonte