命令行方式下载文件

ragnar 1月前 ⋅ 55 阅读

本文聚焦于两个问题: 1、为什么要用命令行方式下载文件? 2、常见的命令行下载文件的方式有哪些?

首先,作为一个软件开发人员,熟悉使用命令行方式来下载文件是很有必要的。因为很难避免的遇到跨操作系统的任务,比如:从linux服务器下载个日志,从windows上传个软件安装包到linux服务器...等等。市面上也有着很多的文件操作的软件,开源的和收费的都有,这些软件大大降低了跨操作系统操作文件的难度。但在无形中也会多了层依赖和障碍,必须的装个额外的软件,而且还得是可视化界面。而使用命令行就没有那么多困扰,各种PC操作系统都支持命令行,直接输入几行命令就可以完成操作,而且还可以写成执行脚本,以及批量操作,就特别适合喜欢专研技术的开发人员。那么就先了解两款常见的下载文件的命令行工具吧

curl

适用场景:目标源能接受http请求。 比如:

# 下载一个 OpenJDK11 的稳定版本
curl -o openjdk11_ga.zip https://download.java.net/java/ga/jdk11/openjdk-11_windows-x64_bin.zip

常用参数:

  • -X 指定请求方式
  • -H 指定请求头
  • -d 指定请求体
  • -o 指定存储文件路径和文件名

be like:

curl -X POST https://example.com \
-o d:/download/test.zip \
-H "content-type:application/json" \
-H "Authorization:xxxxxxxxxxxxxxxxxxxxxx" \
-d "{'hello': 'world'}"

scp

适用场景:目标源能接受ssh协议。下载 & 上传文件。比如:

# 从远端(比如linux操作系统)拷贝一个文件到本地
scp userName@192.168.1.2:~/logs/error.log d:/temp/error.log

# 从本地拷贝一个文件到远程(比如linux操作系统)
scp d:/software_box/openjdk11.zip userName@192.168.1.2:~/software_box/openjdk11.zip

由上面的demo,不难看出两点:

  • fromto,第一组路径就是from,而第二组就是to,表示从哪里拷贝到哪里。
  • 路径的组成除了文件路径外,还可包含用户名主机IP表示的远端信息(比如:userName@192.168.1.2),用:分割。

scp是基于ssh协议的,所以在连接远端时,需要用到ssh连接时的参数:

  • -i 指定ssl连接密钥文件
  • -p 指定ssl连接端口

be like:

scp -i c:/key/mykey -p 222 userName@192.168.1.2:~/logs/error.log d:/temp/error.log

全部评论: 0

    我有话说:

    目录