копия 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"
Atnaize
источник
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/"

Dr_Hope
источник