如何从命令行下载文件?通过SSH?


21

我想将文件从远程服务器下载到本地驱动器,然后从命令行执行。我还希望能够通过SSH执行此操作。我怎样才能做到这一点?

注意:远程服务器是Ubuntu,本地服务器是Mac OS X

Answers:


29

使用scp-command,它在SSH之上运行。例:

scp username@remote.host:/path/to/file localfile

它也可以以另一种方式工作

scp localfile username@host:/path/remotefile

用户名,路径和文件名可以省略(但不能:!)。

正如伊恩说,SFTP作品也,但我倾向于scp为其cp般使用。


不太常见,我敢肯定,如果我错了,请纠正我,但我认为如果您确实需要:scp也可以远程进行 scp username@remote1:/path/to/file username@remote2:/path/to/file
JMD 2010年

您可以复制目录吗?
安德鲁(Andrew)2010年

弄清楚了... -r也递归复制目录
Andrew

我建议-p在使用复制文件或文件夹时添加该选项scp。它也复制文件属性(时间戳和标志)。我发现我想要的-p比不想的要多!
joeytwiddle 2014年

您还可以使用以下-3标志通过localhost进行远程-远程路由:scp -3 jeff@firsthost.com:/files/file1.zip brad@secondhost.com:/archives如果您需要使用私钥访问仅在localhost上找到的两个服务器,这将非常有用:scp -3i /local/path/to/.ssh/private_key dan@host1:/path/to/file.txt miri@host2:/path/to/upload/dir/进度栏已禁用-3
Dan Sandland

3

您也可以使用rsync它。它可以通过SSH运行。


rsync -avvP是我最喜欢的文件和/或文件夹,但是有一个缺点:它需要安装在远程计算机上。
joeytwiddle

如果连接时遇到问题,则可能需要通过-e ssh以告知rsync通过ssh连接。
joeytwiddle

3

我为此使用SFTP。它是命令行,使用与SSH相同的安全性。


1

如果您不能使用scpSFTP,则可以tar通过SSH 使用:

tar cf - . | ssh otherhost "cd /mydir; tar xvf -"

如果您有稀疏文件,否则该文件也将“爆炸”,这也很好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.