Re: scp -rp behavior(SOLVED)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Sun, March 1, 2015 10:22 am, Richard wrote:
>
>
> ------------ Original Message ------------
>> Date: Sunday, March 01, 2015 10:44:08 -0500
>> From: Mark LaPierre <marklapier@xxxxxxxxx>
>> To: centos@xxxxxxxxxx, Mark LaPierre <marklapier@xxxxxxx>
>> Subject: Re:  scp -rp behavior(SOLVED)
>>
>> On 02/26/15 19:45, Valeri Galtsev wrote:
>>>
>>> On Thu, February 26, 2015 6:34 pm, Mark LaPierre wrote:
>>>> Hey all,
>>>>
>>>> I'm trying to copy configuration files from my old CentOS 6.6 32
>>>> bit machine to my new CentOS 6.6 64 bit machine.
>>>>
>>>> On my 32 bit machine:
>>>>
>>>> [mlapier@mushroom ~]$ ifconfig
>>>> eth0      Link encap:Ethernet  HWaddr 00:19:DB:E5:4E:9F
>>>>           inet addr:192.168.15.105
>>>>
>>>> When I issue this command on my new 64 bit machine,
>>>> 192.168.15.101:
>>>>
>>>> scp -pr mlapier@192.168.15.105: /home/mlapier/.thunderbird
>>>> /home/mlapier/.thunderbird
>>>
>>> How about escaping dot (with backslash) for the remote machine,
>>> or just giving the whole path for remote machine in quotes:
>>>
>>> scp -pr mlapier@192.168.15.105:"/home/mlapier/.thunderbird"
>>> /home/mlapier
>>>
>>> ?
>>>
>>> Also, if you want to specify destination directory (say with
>>> different name) you will need to end directory with forward slash
>>> both on local and remote, like:
>>>
>>> scp -pr mlapier@192.168.15.105:"/home/mlapier/.thunderbird/" \
>>> /home/mlapier/.thunderbird/
>>>
>>> (this should be one line which didn't fit for me in one line hence
>>> backslash...)
>>>
>>> Valeri
>>>
>>>>
>>>> It copies all directories and files in 192.168.15.105:
>>>> /home/mlapier/ to 192.168.15.101: /home/mlapier.  I don't want
>>>> all that, I just want the .thunderbird folder and all it's
>>>> contents.
>>>>
>>>> The user and group account numbers match on the two machines for
>>>> this user so that's not the issue.
>>>>
>>>> When I RTFM this is what I thought it said to do.  I'm I
>>>> misreading the FM or is something weird going on here?
>>>>
>>
>> Putting the source path in quotes, because of the dot, like this:
>>
>> scp -pr mlapier@192.168.15.105:"/home/mlapier/.thunderbird"
>> /home/mlapier
>>
>> worked.
>>
>> If the destination also contains a dot or other such character
>> then put the destination in quotes too:
>>
>> scp -pr mlapier@192.168.15.105:"/home/mlapier/.thunderbird"
>> "/home/mlapier/.thunderbird"
>>
>> but only include the destination directory if the destination
>> directory does not yet exist otherwise you will get a copy of the
>> source directory inside the destination directory like this:
>>
>> /home/mlapier/.thunderbird/.thunderbird
>
>
> The problem is/was the space, after the colon, in your command:
>
>   scp -pr mlapier@192.168.15.105: /home/mlapier
>
> quotes, slashes, etc. are totally unnecessary.
>
> If you are keeping the destination name the same as the source, you
> only need to use a "." (dot) for the target (whether the destination
> directory/file already exists or not), not the full name. You only
> need a path on the target side if you are trying to put the
> directory/file in other than the home directory of the user you are
> logging in as.
>
> So, assuming you were in your home directory on the source side, all
> you needed is/was:
>
>    scp -pr mlapier@192.168.15.105:.thunderbird .
>

Well, you are right about dot for local argument, namely "dot" is expanded
on local machine into "path to current directory". For remote machine,
however, you do have to specify absolute path to the directory you intend
to rsync or scp. In your example remote directory quite likely does not
exist, as your command is exact equivalent of this:

scp -pr mlapier@192.168.15.105:/.thunderbird .

whereas you may want to have:

scp -pr mlapier@192.168.15.105:/home/remote_user_name/.thunderbird .

Why "slash": /.thunderbird in case of your example? Because if you do not
specify absolute path beginning with / the ssh daemon prepends your
relative path with its `pwd` it runs in, and its `pwd` is "/")

Another way to specify remote user's home directory would be:

scp -pr mlapier@192.168.15.105:"~/.thunderbird" .

and here quotes prevent "~" from being expanded on local machine, thus "~"
is passed verbatim to remote machine and is expanded on remote machine
into path to remote user's home directory. I hope I didn't mess up
anything here ;-)

Valeri

++++++++++++++++++++++++++++++++++++++++
Valeri Galtsev
Sr System Administrator
Department of Astronomy and Astrophysics
Kavli Institute for Cosmological Physics
University of Chicago
Phone: 773-702-4247
++++++++++++++++++++++++++++++++++++++++
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos




[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux