Linux 和Windows之间命令行实现目录或文件互传

发布于 2020-02-10  48 次阅读


在配置frp实现内网穿透的时候遇到了这么一个尴尬的情况:服务器直接从github源地址下载比自己用电脑下慢了几百倍,但是电脑与服务器之间的传输速度尚可,于是想着怎么能从电脑上把文件传到服务器上。

自用电脑是windos,在linux环境下一般使用scp命令来传输文件,win10开启了ssh之后,在windows powershell中就可以直接使用pscp工具来传输文件。

PSCP全称PuTTY Secure Copy client,是PuTTY 提供的文件传输工具 。现在貌似集成在了PowerShell还是Windows Terminal里了,具体没搞清楚,反正知道有这么个方便的工具就行了,不能直接用的话去下一个PuTTY也不是不可以。

如以下实例,我们想把当前服务器文件123.tar.gz传输到192.168.1.1服务器上 可以执行:pscp /home/123.sql root@192.168.1.1:/tmp

pscp语法基本与scp相同,但也有一下几个注意点:

    -p 拷贝文件的时候保留源文件建立的时间。
    -q 执行文件拷贝时,不显示任何提示消息。
    -r 拷贝整个目录
    -v 拷贝文件时,显示提示信息。

    Usage:
  pscp [options] [user@]host:source target
  pscp [options] source [source...] [user@]host
  pscp [options] -ls user@host:filespec
  用法:
  pscp [选项] [用户名@]主机:源文件 目标文件
  pscp [选项] 源文件 [源文件……] [用户名@]主机
  pscp [选项] -ls 用户名@主机:文件空间?
  Options:
  选项:
  -p preserve file attributes 保护文件属性
  -q quiet, don't show statistics 安静,不显示统计
  -r copy directories recursively 复制子文件夹
  -V print version information and exit 显示信息
  -v show verbose messages
  -load sessname Load settings from saved session
  -load 加载,加载保存节的设定
  -P port connect to specified port
  -P 端口,连接到指定空间端口
  -l user connect with specified username
  -l 用户,用指定的用户连接空间
  -pw passw login with specified password
  -pw 密码,用指定的密码登录空间
  -1/-2 强迫 ssh 使用的版本
  -4 -6 force use of IPv4 or IPv6
  -C 打开压缩
  -i key 钥匙,证明用的钥匙文件
  -batch 关闭交互能力,也许
  -unsafe 不安全,允许伺服端取代字符 (危险的)

       pscp options(详细参数)

参数描述(英文)描述(中文)
-Vprint version information and exit打印版本信息并退出
-pgpfpprint PGP key fingerprints and exit打印PGP密钥指纹并退出。(至于PGP密匙是什么,这个楼主我也不太清楚,欢迎评论解答
-ppreserve file attributes保留文件属性
-qquiet, don't show statistics悄悄地, 不显示统计数据

-rcopy directories recursively递归拷贝目录
-vshow verbose message显示冗余信息
-loadsessname Load settings from saved session加载保存好的会话设置
-P portconnect to specified port连接指定的端口(如果不用此选项,默认为22端口)
-l userconnect with specified usernam指定用户连接   
-pw passwlogin with specified password显式的输入用户密码
-1 -2force use of particular SSH protocol version强制使用指定SSH协议版本, 可以通过:cat /etc/ssh/ssh_config | grep Protocol 来查看, 也可以用pscp -v的形式先连接一下, 它会显示出所有冗余信息,其中会有这么一行Using SSH protocol version 2 具体试一下就知道了!
-4 -6force use of IPv4 or IPv6强制使用IPv4或IPv6
-Cenable compression使用压缩
-i keyprivate key file for authentication认证所需要的私有密钥文件
-noagentdisable use of Pageant不使用Pageant
-agentenable use of Pageant使用Pageant
-batchdisable all interactive prompts禁用所有交互提示
-unsafeallow server-side wildcards (DANGEROUS)允许服务器段的通配符
-sftpforce use of SFTP protocol强制使用SFTP协议
-scpforce use of SCP protocol强制使用SCP协议

当其他人都认为你要鸽的时候,你鸽了,亦是一种不鸽