How to SCP a path with spaces

May
14
2007
Tagged in , , &
Baby Tux

I recently needed to remotely copy over SSH a folder from the remote machine to my local machine. Usually this is not a problem, however the path to this folder had a space in it. The folder itself is rather large and contains files which wouldn't really benefit from compression. It turns out the solution was quite simple.

These instructions are assuming you're connecting from a unix-like system to a unix-like system (eg Linux or OSX).

scp -r myserver.com:"/path/with/a/Space\\ In\\ It" ./

This basically says "recursively copy the folder at myserver.com (using the local username) to the current folder using scp". Now the spaces need to be double escaped as the first escape only signifies that they're spaces on the LOCAL machine - by the time they got to the remote machine, they wouldn't be escaped anymore. By double escaping them locally, by the time the path makes it to the remote machine they are just single escaped. I have to admit - I'm not 100% sure why you need the double quotes around the path itself.

Personally, I tend to run the scp command within a separate screen so I can detach it and reattach it later. It also means that if my connection from my machine to the machine I'm SSH'd to (be it local or remote) drops or crashes, the process will continue to run and I can reattach the screen when I reconnect.

Comment Icon

14 Comments

The most recent comment was on Mon, 4th Jan 2010, 09:44

thanks

Really appreciate stuff like this. Thank you very much

Thanks

Great but i am not sure if you need to escape the slashes.
But if it is then Thanks for the post.

Easier way?

This also worked for me, and it's easier if you have a filename with a lot of spaces in it:

scp user@host:"'file name with lots of spaces'"

Your local shell will ignore the outer double quotes and the remote shell will receive the filename in single quotes. You would probably have to do something else if the remote filename has " or ' characters.

want to download theems for my mobile

its very nice

Alternative

scp -r myserver.com:"\"/path/with/a/Space In It\"" ./ ... works too

thanks ..

this worked for me. I had a file with spaces in it.

t.

thanks for this tip

thanks for this tip
i already tried with only double quotes and only \\ but didn't succeed and had always to resolve to symlink the wanted file and scp the symlink

Thanks for the tip

Thanks for the useful information. It is really very helpful for us.

Martin.
http://www.ezeeforum.com

Thanks

Thanks a bunch, this really helped me out!

Thanks

Thanks,this is the only infomation I found about this problem.

Thank you!

Thank you!

Thanks

May the google follow thine link everytime I need it :)

Very good post, thanks a lot.

Very good post, thanks a lot.

Really useful

I was about to change my file structure and remove all spaces when I found your post. This double escaping stuff is always tricky :)

Thanks a lot for putting this up.

Abhaya

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <img> <p>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.
  • You can enable syntax highlighting of source code with the following tags: <pre>, <code>.

More information about formatting options

By submitting this form, you accept the Mollom privacy policy.

Follow Me

Recent comments

Answers 1 day ago
Replies.... 6 days ago
Or in 6 days ago
A few tweaks 1 week ago
Nice 1 week ago
Thanks a million 1 week ago
Syndicate content