kopia scp zawiera błąd „niejednoznaczny cel”


40

Próbuję skopiować pliki z komputera z systemem Linux (ubuntu) na zewnętrzny dysk twardy zamontowany na komputerze Mac, ale dostałem komunikat o błędzie:

scp: ambiguous target

To, co zrobiłem, to, że jestem na komputerze Mac, ssh na komputerze z systemem Linux, na którym znajdują się pliki. Następnie użyj następującego polecenia:

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

Co zrobiłem źle ? Jakiego polecenia należy użyć w tym przypadku?


Stało się to, gdy miałem dodatkowy parametr ( -tpozostałość po poprzednim sshpoleceniu) na liście arg; najwyraźniej nie jest to obsługiwane, scpale błąd, który otrzymałem, to ambiguous target:(
Janaka Bandara,

Odpowiedzi:


61

Jeśli na ścieżce znajduje się spacja, musisz uciec od znaków, używając podwójnych ukośników odwrotnych \\i umieszczając całą ścieżkę w cudzysłowie:

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

3
tak to jest to ! Najpierw próbowałem z podwójnym \\, ale nie działałem, a potem próbowałem dodać „” wokół mojej ścieżki za pomocą \\. To działa. Dzięki.
Bob

1
Kluczem było dla mnie
zawarcie

2
Równie dobre są pojedyncze cytaty i pojedyncze ukośniki odwrotne.
andrew lorien

1
Działa także potrójne ukośniki odwrotne bez cudzysłowów.
pizzapants184

2
Działa także podwójny cudzysłów w pojedynczych sekwencjach bez spacji scp myfile.txt user@192.168.1.100:'"/file path with spaces/myfile.txt"'. W rzeczywistości musisz dwa razy uciec z nazwy pliku: pierwszy raz z lokalnej powłoki, a drugi raz ze zdalnej.
mik

0

Musisz wstawić cudzysłowy, aby spacje nie były źle interpretowane. Zamiast tego scp file Server:/folder\ location/powinieneś zrobićscp file "Server:/folder\ location/"

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.