【问题标题】:copy directory from another computer on Linux在 Linux 上从另一台计算机复制目录
【发布时间】:2015-09-08 17:37:29
【问题描述】:

在 IP 地址如 10.11.12.123 的计算机上,我有一个文件夹 document。我想使用 shell 将该文件夹复制到我的本地文件夹 /home/my-pc/doc/

我试过这样:

scp -r smb:10.11.12.123/other-pc/document /home/my-pc/doc/ 

但它不起作用。

【问题讨论】:

  • 请告诉我其他机器的操作系统
  • 因为它们都是linux盒子,所以不需要smb。您确实需要确保sshd10.11.12.123 上运行,以允许安全连接。那么rsync 就是你的朋友(学习一下)。 rsync -uav 10.11.12.123:/other-pc/document /home/my-pc/doc/ 注意:document 之后没有/(这将复制内容而不是目录和内容)如果你想使用scp,那么scp -rv 10.11.12.123:/other-pc/document /home/my-pc/doc/
  • @DavidC.Rankin 建议您将其写为答案。
  • 您没有说明您收到的错误

标签: linux scp


【解决方案1】:

所以你可以使用下面的命令来复制你的文件。

scp -r <source> <destination>

(-r: 递归复制整个目录)

例如:

scp -r user@10.11.12.123:/other-pc/document /home/my-pc/doc

要识别位置可以使用pwd 命令,例如:

kasun@kasunr:~/Downloads$ pwd
/home/kasun/Downloads

【讨论】:

  • user@10.11.12.123/other-pc/document 是那台电脑的名字吗?
  • user@10.11.12.123 in this user is logging username for other pc
【解决方案2】:

如果你想从B复制到A如果你登录到B:那么

scp /source username@a:/destination

如果你想从B复制到A如果你已经登录到A:那么

scp username@b:/source /destination

【讨论】:

    【解决方案3】:

    除了评论之外,当您查看当今 Linux 上的主机到主机复制选项时,rsync 是迄今为止最强大的解决方案。它由 SAMBA 团队[1] 带给您,并继续享受积极的发展。大多数发行版默认包含rsync 包。 (如果没有,您应该为您的发行版找到一个易于安装的软件包,或者您可以从rsync.samba.org 下载它。

    rsync进行主机到主机目录复制的基本用法是:

    $ rsync -uav srchost:/path/to/dir /path/to/dest
    

    -uav 只是递归地复制-ua 仅保留文件和目录时间和权限的新文件或更改文件,同时提供-v 详细输出。系统将提示您输入 10.11.12.123 上的用户名/密码,除非您已设置 ssh-keys 以允许公钥/私钥身份验证(请参阅:ssh-keygen 以生成密钥)

    如果您注意到,语法与scp 的语法基本相同,但选项略有不同:(例如scp -rv srchost:/path/to/dir /path/to/dest)。默认情况下,rsync 将使用ssh 进行安全传输,因此您需要确保sshd 在您的srchost 上运行(在您的情况下为10.11.12.123)。如果您有名称解析工作(或10.11.12.123 中的简单条目10.11.12.123),您可以使用远程主机的主机名而不是远程IP。无论如何,您始终可以传输您感兴趣的文件:

    $ rsync -uav 10.11.12.123:/other-pc/document /home/my-pc/doc/
    

    注意:如果要复制目录本身,请不要在 document 之后包含尾随 /。如果您确实在document(即10.11.12.123:/other-pc/document/)之后包含了一个尾随/,那么您是在告诉rsync内容(即document 下的文件和目录)复制到@ 987654349@ 无需同时复制document 目录。

    rsync 远优于其他复制应用程序的原因在于它提供了在本地以及本地计算机和远程主机之间真正同步文件系统和目录树的选项。这意味着,在您的情况下,如果您使用rsync 将文件传输到/home/my-pc/doc/,然后更改文件或删除10.11.12.123 上的文件,您只需再次调用rsync 并反映更改/删除在/home/my-pc/doc/。 (在rsync --helpman 1 rsync 中查看--delete 选项的几种风格的详细信息)

    出于这些以及更多原因,值得花时间熟悉rsync。它是任何 Linux 用户口袋中的宝贵工具。希望这能解决您的问题并帮助您入门。

    脚注

    [1] 与“向更广阔的世界打开 Windows”相同的人允许通过本机 Windows 服务器消息块 (smb) 协议在 Windows/Linux 主机之间实现无缝连接。 samba.org

    【讨论】:

      【解决方案4】:

      如果您提到的两个目录(document/home/my-pc/doc/)在同一台10.11.12.123 机器上。

      然后:

      cp -ai document /home/my-pc/doc/

      其他:

      scp -r document/ root@10.11.12.123:/home/my-pc/doc/

      【讨论】:

      • 同时,无论两个目录是否在同一主机上,第二种解决方案始终有效。
      猜你喜欢
      • 2016-04-16
      • 2014-04-22
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 2018-11-19
      相关资源
      最近更新 更多