Я пытаюсь скопировать файл с двоеточиями и точками, например:
scp "test.json-2014-08-07T11:17:58.662378" remote:tmp/
scp test.json-2014-08-07T11\:17\:58.662378 remote:tmp/
и комбинации с файлом:
scp "file:///home/.../test.json-2014-08-07T11:17:58.662378" remote:tmp/
Я предполагаю, что scp пытается интерпретировать части файла как сервер и / или номер порта. Как мне этого избежать?
Если я переименую файл в test.json, то все будет в scp test.json remote:tmp/
порядке, но даже не scp test*62378 remote:tmp/
работает.
*
) не работают. Это делается в оболочке, поэтому точно такой же текст (аргумент) будет переданscp
. Вам нужно изменить текст (аргумент), который передаетсяscp
. (см. ответ ниже, для чего изменить текстовый аргумент на.):
это недопустимый символ имени файла в OSX, поэтому, если вам когда-нибудь понадобится перенести эти файлы туда, стоит кое-что помнить.scp -- -1.JvSbrpchxuk.png user@example.com:/tmp
Ответы:
Используйте
./
перед вашим именем файла:Это дает
scp
понять, что это файл. Без этогоscp
думает , что это имя хоста из-за двоеточия.источник
Используйте путь, предваряя
./
и избегая своих:
. Киберити имеет больше информации . Пример:источник
:
находится на уровне оболочки, а не на уровне scp.scp ./test.json-2014-08-07T11:17:58.662378 remote:tmp/
действительно работает! Сожалею.Судя по всему, я не пробовал эту версию с префиксом пути:
это также работает:
От https://twitter.com/h0pbeat/status/497319751031353344 и http://www.cyberciti.biz/faq/rsync-scp-file-name-with-colon-punctuation-in-it/ Спасибо.
(как вышеупомянутые пользователи сумели ответить раньше меня)
источник