在我的终端 shell 中,我通过 ssh 连接到远程服务器,然后进入我cd想要的目录。
现在在这个目录中,有一个名为table我想复制到本地机器的文件/home/me/Desktop。
我怎样才能做到这一点?
我试过了,scp table /home/me/Desktop但它给出了一个关于没有这样的文件或目录的错误。
有谁知道如何做到这一点?
hee*_*ayl 585
的语法scp是:
如果您在要将文件发送到远程计算机的计算机上:
scp /file/to/send username@remote:/where/to/put
Run Code Online (Sandbox Code Playgroud)
此处remote可以是 FQDN 或 IP 地址。
另一方面,如果您在想要从远程计算机接收文件的计算机上:
scp username@remote:/file/to/send /where/to/put
Run Code Online (Sandbox Code Playgroud)
scp 还可以在两个远程主机之间发送文件:
scp username@remote_1:/file/to/send username@remote_2:/where/to/put
Run Code Online (Sandbox Code Playgroud)
所以基本语法是:
scp username@source:/location/to/file username@destination:/where/to/put
Run Code Online (Sandbox Code Playgroud)
您可以阅读man scp以获取更多关于此的想法。
fug*_*ive 20
您可以使用rsync作为替代。它主要用于同步文件……但您也可以将其用于此目的。
rsync -avzh --stats --progress remoteuser@remoteip:/path/ localpath
Run Code Online (Sandbox Code Playgroud)
添加 ssh 选项:
rsync -e "ssh -P $port_value" remoteuser@remoteip:/path/ localpath
Run Code Online (Sandbox Code Playgroud)
--progress并且--stats对于传输的实时显示很有用。
我认为这是比 SCP 更好的选择,因为它会跳过已经传输的文件,这在您复制大量文件时很明显。
小智 16
scp root@10.240.179.4:/root/Jmeter/reports.jtl Downloads/
Run Code Online (Sandbox Code Playgroud)
小智 11
scp username@ipaddress:pathtofile localsystempath
scp sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .
Run Code Online (Sandbox Code Playgroud)
如果您使用端口:
scp -Pportnumber username@ipaddress:pathtofile localsystempath
scp -P2233 sadananad@ipaddress:/home/demo/public_html/myproject.tar.gz .
Run Code Online (Sandbox Code Playgroud)
如果您完全信任网络中的每个人并且可以直接连接目标计算机的端口,则可以使用 netcat: nc。
假设目标计算机的 IP 地址是 192.168.1.123
在目的地运行:
nc -l -p 7777 0.0.0.0 | tar zxvf - -C dest_dir
Run Code Online (Sandbox Code Playgroud)
您可以选择不同的端口,也可以绑定到接口的另一个IP,0.0.0.0 只捕获所有接口。
在源上运行:
tar zcvf - filename | nc 192.168.1.123 7777
Run Code Online (Sandbox Code Playgroud)
恕我直言,这是使用数字网络将文件从一台计算机发送到另一台计算机的最快方法。
nc不同版本的和之间的参数和命令行选项可能会略有不同tar,但它肯定适用于最新的 Linux 发行版。