在 SSH 中,如何 mv 到我的本地系统?

在 SSH 中,如何 mv 到我的本地系统?

ssh进入我的网络主机目录,然后tar输入要下载的 Web 应用程序。当我尝试mv输入~/mydirectory/backups或时/home/mydirectory/backups,它将“home”定义为我通过 ssh 进入的网络主机上的根目录。

我如何在仍在网络主机系统内的情况下通过 ssh 访问本地驱动器?

答案1

首先:ssh 是一种远程登录另一台计算机的方法。使用 ssh 后获得的 shell(命令行)与在远程计算机上打开 xterm 时的情况(基本相同)。它不提供这种移动文件的方法。

然而,远程计算机接受 ssh 连接的事实为您提供了一些交换文件的选项:

使用 scp 要从本地计算机复制到远程,请在本地计算机中输入:

scp /tmp/file [email protected]:/home/name/dir

(其中 /tmp/file 可以替换为任何本地文件,/home/name/dir 可以替换为任何远程目录)

要从远程计算机复制到本地计算机,请在当地的电脑:

scp [email protected]:/home/name/dir/file /tmp

使用 sshfs 这有点高级,但更好(当两台计算机的互联网连接良好时。如果不是,请坚持使用 scp)

您可以将远程计算机的目录“链接”到本地计算机的(空)目录。假设您将远程计算机的 /some/remote/dir “链接”到您计算机中的 /home/youruser/remotecomp。如果远程计算机中有文件 /some/remote/dir/file,您可以在 /home/youruser/remotecomp/file 上看到它。您可以像往常一样复制和 mv,甚至可以更改远程文件和目录。

但请注意,当连接结束时,/home/youruser/remotecomp 再次变为空目录,并且您只会在本地计算机中保留复制到其他目录的文件

为了达成这个:

  1. 安装 sshfs:

sudo apt-get install sshfs

  1. 创建一个空目录

mkdir /home/youruser/remotecomp

  1. “链接”两个目录(正确的术语是 mount)

sshfs [email protected]:/some/remote/dir /home/youruser/remotecomp

  1. 享受

  2. “取消链接”目录

fusermount -u /home/youruser/remotecomp

如果本地计算机运行的是 Windows 您可以找到scp适用于 Windows 的版本。例如,请参阅韓國

Rsync rsync 是一个用于复制文件的实用程序,它可以:

  • 恢复转会
  • 重新进行传输,但只发送发生变化的文件。

要复制单个文件,您可以使用rsync -P -e ssh /tmp/file [email protected]:/home/name/dir

为了保持目录同步,仅发送所需的文件,您可以使用rsync -avzh /home/yourname/dir_name [email protected]:/var/temp/

还有许多其他选项,包括如果文件不再存在于本地目录中,则删除远程目录中的文件。

这个选项有点难。例如,你可能会弄乱尾部斜杠(请注意,在最后一个命令中,dir_name 没有尾部斜杠,但 /var/temp/ 有)。所以它很有用,但需要一些测试和/或man rsync

与往常一样,命令在本地计算机中运行,而不是远程计算机

答案2

您可以使用scprsync。在您的本地系统中:

scp remoteuser@remotehost:/remote/dir/file /local/dir/

但是,既然您提到了备份,我假设它将是增量的,并且您需要不时地进行备份。因此,rsync增量备份是更好的选择。在您的本地 shell 上:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/

请参阅rsync(1)手册scp(1)页以了解选项。

答案3

你可以使用SCP安全副本。

从你的本地 shell:

scp -C username@webhost:/path/of-the/tar.archive /home/mydirectory/backups/

此示例将通过 ssh 从您的网络主机的 /path/of-the/tar.archive 复制到 /home/mydirectory/backups/

额外选项:

-C:启用压缩

答案4

其他答案推荐rsyncscp,两者都要求您知道要在远程计算机上复制的文件的位置。

如果您希望能够在远程计算机上四处查看,就像使用 一样ssh,您需要运行sftp。登录服务器与 非常相似ssh,但一旦进入,键入help以获取命令列表 - 它可以让您在本地和远程计算机上移动,并轻松地来回传输文件。

相关内容