Problem with scp on Mac OS X: scp doesn't like

2020-07-10 07:24发布

问题:

I am trying to use scp to transfer files between two Macs (OS 10.6.8). But it fails because there are spaces in my directory/file names. I can't change the directory/file names.

I have often used a \ symbol when working in a terminal with my Macs to represent spaces. In this case, however, it is not working. I would very much appreciate any tips on how to deal with this. Thanks.

Here is an example of what I'm doing, in case I'm making a silly mistake somewhere:

scp -r me@myWork:../../My\ documents/Projects/Project\ 1/* ./Desktop

Error: scp: ../../My: No such file or directory

I tried rsync too and that doesn't work either:

rsync -avub -e ssh me@myWork::../../My\ documents/Projects/Project\ 1/* ./Desktop

rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-40/rsync/io.c(452)

回答1:

You didn't escape the space after "my". This:

me@myWork:../../My documents/Projects/Project\ 1/*

should be:

me@myWork:../../My\ documents/Projects/Project\ 1/*

Or you could just wrap the entire path in quotes.



回答2:

for me I needed to actually do both:

scp -r 127.0.0.1:/Volumes/Folders/Faces/"Why\ Spaces\ Why"/"Insanity\ Rules"/ .


回答3:

This worked for macOS Mojave 10.14.5

scp -r abc@x.x.x.x:~/Library/MobileDevice/"Provisioning\ Profiles"/. ~/Library/MobileDevice/"Provisioning Profiles"/.

Note:

the source path has "Provisioning\ Profiles"

the destination path has "Provisioning Profiles"



标签: macos path ssh scp