копия scp имеет ошибку «неоднозначная цель»


40

Я пытаюсь скопировать файлы с компьютера Linux (Ubuntu) на внешний жесткий диск, смонтированный на Mac, но получил сообщение об ошибке:

scp: ambiguous target

Что я сделал, я на Mac, SSH к машине Linux, где файлы. Затем используйте следующую команду:

scp fileToCopy myMacUser@myMacMachine:/Volumes/MyExternalDrive/targetDirectory

Что я сделал не так ? Какую команду лучше использовать в этом случае?


Произошло со мной, когда у меня был дополнительный параметр ( -t; остаток от предыдущей sshкоманды) в списке аргументов; очевидно это не поддерживается, scpно ошибка, которую я получил, была ambiguous target:(
Джанака Бандара

Ответы:


62

Если у вас есть пробел в пути, вы должны экранировать символы, используя двойную обратную косую черту \\и заключая весь путь в кавычки:

scp myfile.txt user@192.168.1.100:"/file\\ path\\ with\\ spaces/myfile.txt"

3
да, это так! Сначала я попытался с двойным \\, но он не работал, а затем я попытался добавить "" по моему пути с \\. Это делает работу. Спасибо.
Боб

1
Обертка удаленного пути в кавычках была ключевой для меня
sam452

2
Одинарные кавычки и одинарные обратные слэши работают так же хорошо.
Эндрю Лориен

1
Работает также тройная обратная косая черта без кавычек.
pizzapants184

2
Двойные кавычки в одинарных кавычках без пробелов также работают ( scp myfile.txt user@192.168.1.100:'"/file path with spaces/myfile.txt"'). Фактически вы должны экранировать имя файла дважды: первый раз из локальной оболочки и второй раз из удаленной.
Мик

0

Вы должны поставить кавычки, чтобы пробелы не были неверно истолкованы. Вместо того, чтобы делать, scp file Server:/folder\ location/вы должны сделатьscp file "Server:/folder\ location/"

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.