在终端外壳程序中,我将其放入远程服务器,然后cd到所需的目录。

现在该目录中有一个名为table的文件,我想将其复制到本地计算机/home/me/Desktop中。

我该怎么做?

我尝试了scp table /home/me/Desktop,但它给出了关于没有此类文件或目录的错误。

有人知道怎么做吗?

评论

如果发现自己经常使用scp复制,则可以在文件浏览器中挂载远程目录并拖放。在我的Ubuntu 15主机上,它在菜单栏“转到”>“输入位置”> debian@10.42.4.66:/ home / debian下。或者,可以使用sshfs在主机上挂载远程计算机的文件系统。但是该设置要复杂一些。

尝试一下rsync。这对于本地和远程副本都非常有用,可以为您提供复制进度等。示例

#1 楼

scp的语法是:

如果您要从中将文件发送到远程计算机的计算机:

scp /file/to/send username@remote:/where/to/put


此处remote可以是FQDN或IP地址。另一方面,如果您要在计算机上从远程计算机接收文件:

scp username@remote:/file/to/send /where/to/put


scp也可以在两个远程主机之间发送文件:

scp username@remote_1:/file/to/send username@remote_2:/where/to/put


所以基本语法是:

scp username@source:/location/to/file username@destination:/where/to/put


您可以阅读man scp以获得更多关于此的想法。

评论


如果我要复制多个文件怎么办?我添加了一个空格,只是使用了另一个/ file / to / send谢谢您的出色回答!

– camdixon
16年7月12日在18:30



scp -r将递归复制。

–亨利
16年8月10日在21:10

我想将文件从网络复制到我的VM ...如何使用scp来实现相同目的

– Sushivam
16-11-16在12:48

@heemayl +1是一个很好的答案。考虑补充一下,在安全连接(需要身份验证)的情况下,可以使用以下命令(用于将文件从本地复制到远程):scp -i mykey.pem somefile.txt root@remotehost.ip.address :/一些/文件夹/在/远程

–Guy Avraham
17-10-19在10:48



使用scp -P 123指定自定义端口

– aexl
17/12/28在12:52

#2 楼

您可以使用rsync作为替代。它主要用于同步文件..,但您也可以将其用于此目的。

rsync -avzh --stats --progress remoteuser@remoteip:/path/  localpath 


添加ssh选项:

--progress--stats可用于实时显示传输。正在复制大量文件。

#3 楼

scp root@10.240.179.4:/root/Jmeter/reports.jtl Downloads/


#4 楼

scp username@ipaddress:pathtofile localsystempath

scp sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .


如果与端口一起使用:

scp -Pportnumber username@ipaddress:pathtofile localsystempath 

scp -P2233 sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .


评论


这会将文件复制到相同的远程目录。

– Max Yudin
18-10-12在11:02

#5 楼

如果您完全信任网络中的每个人,并且可以直接连接目标计算机的端口,则可以使用netcat:nc

假设目标计算机的IP地址为192.168.1.123

在目标位置运行:

nc -l -p 7777 0.0.0.0 | tar zxvf - -C dest_dir


您可以选择其他端口,也可以绑定到接口的另一个IP,0.0.0.0只是捕获在所有接口上。

在源代码上运行:

tar zcvf - filename | nc 192.168.1.123 7777


恕我直言,这是最快的方式将文件从一台计算机发送到

在不同版本的nctar之间,参数和命令行选项可能会略有变化,但是肯定可以在最新的Linux发行版中使用。

评论


我认为您的tar参数有误,源不应该带有“ x”,并且也可以使用“ v”来实现奇偶校验。

–哑光D
2月21日9:11

@MattesD:谢谢,您说对了,已修复。

–onurgüngör
2月22日上午10:45

#6 楼

在Linux上,要将文件夹及其内容从用户(在此示例中为root)目录复制到本地用户目录中的文件夹,请在本地计算机上运行以下命令:

scp -r root@178.62.54.83:〜/ folderinremoteuserdir〜/ folderinlocaluserdir

请注意〜/我经常会忘记的...