scp-копія має помилку "неоднозначна ціль"


40

Я намагаюся скопіювати файли з машини Linux (ubuntu) на зовнішній жорсткий диск, встановлений на mac, але отримав повідомлення про помилку:

scp: ambiguous target

Що я зробив - це я на mac, ssh на машині Linux, де є файли. Потім використовуйте таку команду:

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

Що я зробив не так? Яку хорошу команду використовувати в цьому випадку?


Сталося зі мною, коли в списку аргу у мене був додатковий парам ( -t; залишок від попередньої sshкоманди); Мабуть, це не підтримується, scpале помилка, яку я отримав, була ambiguous target:(
Janaka Bandara,

Відповіді:


61

Якщо у вас є пробіл на шляху, вам слід уникнути символів, використовуючи подвійні нахили на \\косому рисі і уклавши весь шлях у лапки:

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

3
так, це все! Спочатку я спробував з подвійним \\, але не вийшло, а потім спробував додати "" навколо мого шляху за допомогою \\. Це робить роботу. Спасибі.
боб

1
Загортання віддаленого шляху в лапки було для мене ключовим
sam452

2
Одиночні котирування та косооке рисування спрацьовують так само добре.
andrew lorien

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.