赞
踩
在 Linux 中,wget 主要用于下载文件,是包含在 GNU 计划中的软件。支持通过 HTTP、HTTPS,以及 FTP 协议下载。
语法格式如下:
wget [option]... [URL]...
option 表示参数,URL 表示下载文件的链接。
-b, --background : 进入后台下载;
-o logfile, --output-file=logfile : 将命令执行信息输出到日志文件;
-O file, --output-document=file : 修改下载文件名;
-P prefix, --directory-prefix=prefix : 下载文件到指定目录下;
-i file, --input-file=file : 下载文件中链接指向的文件;
-c, --continue : 断点续传;
可以不带参数直接下载文件,文件存储到当前目录。
- linuxy@linuxy:~/wget$ wget http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- --2021-06-05 22:34:46-- http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- 正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.142, 91.189.88.152, 2001:67c:1360:8001::24, ...
- 正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.142|:80... 已连接。
- 已发出 HTTP 请求,正在等待回应... 200 OK
- 长度: 37756 (37K) [application/x-debian-package]
- 正在保存至: “acl_2.2.53-6_amd64.deb”
-
- acl_2.2.53-6_amd64.deb 100%[==========================================================>] 36.87K 98.6KB/s 用时 0.4s
-
- 2021-06-05 22:34:47 (98.6 KB/s) - 已保存 “acl_2.2.53-6_amd64.deb” [37756/37756])
-
- linuxy@linuxy:~/wget$ ls
- acl_2.2.53-6_amd64.deb
- linuxy@linuxy:~/wget$
如果当前目录下已存在同名文件,则为新文件添加 ".N" 后缀,如下所示:
- linuxy@linuxy:~/wget$ wget http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- --2021-06-05 22:56:45-- http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- 正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::23, ...
- 正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
- 已发出 HTTP 请求,正在等待回应... 200 OK
- 长度: 37756 (37K) [application/x-debian-package]
- 正在保存至: “acl_2.2.53-6_amd64.deb.1”
-
- acl_2.2.53-6_amd64.deb.1 100%[==========================================================>] 36.87K 34.4KB/s 用时 1.1s
-
- 2021-06-05 22:56:48 (34.4 KB/s) - 已保存 “acl_2.2.53-6_amd64.deb.1” [37756/37756])
-
- linuxy@linuxy:~/wget$ ls
- acl_2.2.53-6_amd64.deb acl_2.2.53-6_amd64.deb.1
- linuxy@linuxy:~/wget$
acl 第二次下载后重命名为 acl_2.2.53-6_amd64.deb.1。
- linuxy@linuxy:~/wget$ wget -o wget-log-new http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- linuxy@linuxy:~/wget$ ls
- acl_2.2.53-6_amd64.deb wget-log-new
- linuxy@linuxy:~/wget$
将命令输出信息存储到指定文件,命令行界面瞬间清爽啦!
- linuxy@linuxy:~$ wget -b http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- 继续在后台运行,pid 为 3300。
- 将把输出写入至 “wget-log”。
转到后台下载,下载后存储到当前目录。如果没有指定 -o 参数,命令输出信息将保存到当前目录下 wget-log 文件中。
- linuxy@linuxy:~/wget$ wget -O acl.deb http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- --2021-06-05 21:51:15-- http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- 正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::23, ...
- 正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
- 已发出 HTTP 请求,正在等待回应... 200 OK
- 长度: 37756 (37K) [application/x-debian-package]
- 正在保存至: “acl.deb”
-
- acl.deb 100%[==========================================================>] 36.87K 41.0KB/s 用时 0.9s
-
- 2021-06-05 21:51:17 (41.0 KB/s) - 已保存 “acl.deb” [37756/37756])
-
- linuxy@linuxy:~/wget$ ls
- acl.deb
- linuxy@linuxy:~/wget$
将下载的文件重命名为 acl.deb。
将文件下载到指定目录下,如下所示:
- linuxy@linuxy:~/wget$ wget -P /tmp http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- --2021-06-05 23:03:22-- http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- 正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::24, ...
- 正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
- 已发出 HTTP 请求,正在等待回应... 200 OK
- 长度: 37756 (37K) [application/x-debian-package]
- 正在保存至: “/tmp/acl_2.2.53-6_amd64.deb”
-
- acl_2.2.53-6_amd64.deb 100%[==========================================================>] 36.87K 20.1KB/s 用时 1.8s
-
- 2021-06-05 23:03:26 (20.1 KB/s) - 已保存 “/tmp/acl_2.2.53-6_amd64.deb” [37756/37756])
-
- linuxy@linuxy:~/wget$ ls -l /tmp/acl_2.2.53-6_amd64.deb
- -rw-rw-r-- 1 linuxy linuxy 37756 3月 10 2020 /tmp/acl_2.2.53-6_amd64.deb
- linuxy@linuxy:~/wget$ ls
- linuxy@linuxy:~/wget$
文件被下载到 /tmp 目录下。
断点续传指的是从上次已经下载的地方继续下载,不用重新下载,需要服务器支持断点续传功能。
使用 wget 下载 vim,下载到 61% 的时候中断下载,如下所示:
- linuxy@linuxy:~/wget$ wget -c http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim_8.1.2269-1ubuntu5_amd64.deb
- --2021-06-05 22:41:18-- http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim_8.1.2269-1ubuntu5_amd64.deb
- 正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::24, ...
- 正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
- 已发出 HTTP 请求,正在等待回应... 206 Partial Content
- 长度: 1237624 (1.2M),剩余 1224077 (1.2M) [application/x-debian-package]
- 正在保存至: “vim_8.1.2269-1ubuntu5_amd64.deb”
-
- vim_8.1.2269-1ubuntu5_amd64.deb 61%[===================================> ] 745.06K 16.8KB/s 剩余 27s
然后,再次下载,第二次下载从上次 61% 处继续下载,如下所示:
- linuxy@linuxy:~/wget$ wget -c http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim_8.1.2269-1ubuntu5_amd64.deb
- --2021-06-05 22:42:04-- http://archive.ubuntu.com/ubuntu/pool/main/v/vim/vim_8.1.2269-1ubuntu5_amd64.deb
- 正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::24, ...
- 正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
- 已发出 HTTP 请求,正在等待回应... 206 Partial Content
- 长度: 1237624 (1.2M),剩余 471355 (460K) [application/x-debian-package]
- 正在保存至: “vim_8.1.2269-1ubuntu5_amd64.deb”
-
- vim_8.1.2269-1ubuntu5_amd64.deb 100%[++++++++++++++++++++++++++++++++++++======================>] 1.18M 25.4KB/s 用时 17s
-
- 2021-06-05 22:42:22 (27.1 KB/s) - 已保存 “vim_8.1.2269-1ubuntu5_amd64.deb” [1237624/1237624])
-
- linuxy@linuxy:~/wget$
已经下载的 61% 标注为 “+”。
- linuxy@linuxy:~/wget$ cat download
- http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- http://ports.ubuntu.com/pool/main/c/curl/curl_7.68.0-1ubuntu2_arm64.deb
- linuxy@linuxy:~/wget$ wget -i download
- --2021-06-05 22:04:37-- http://archive.ubuntu.com/ubuntu/pool/main/a/acl/acl_2.2.53-6_amd64.deb
- 正在解析主机 archive.ubuntu.com (archive.ubuntu.com)... 91.189.88.152, 91.189.88.142, 2001:67c:1360:8001::24, ...
- 正在连接 archive.ubuntu.com (archive.ubuntu.com)|91.189.88.152|:80... 已连接。
- 已发出 HTTP 请求,正在等待回应... 200 OK
- 长度: 37756 (37K) [application/x-debian-package]
- 正在保存至: “acl_2.2.53-6_amd64.deb”
-
- acl_2.2.53-6_amd64.deb 100%[==========================================================>] 36.87K 20.3KB/s 用时 19s
-
- 2021-06-05 22:05:00 (1.92 KB/s) - 已保存 “acl_2.2.53-6_amd64.deb” [37756/37756])
-
- --2021-06-05 22:05:00-- http://ports.ubuntu.com/pool/main/c/curl/curl_7.68.0-1ubuntu2_arm64.deb
- 正在解析主机 ports.ubuntu.com (ports.ubuntu.com)... 91.189.91.39, 91.189.91.38, 2001:67c:1562::18, ...
- 正在连接 ports.ubuntu.com (ports.ubuntu.com)|91.189.91.39|:80... 已连接。
- 已发出 HTTP 请求,正在等待回应... 200 OK
- 长度: 156608 (153K) [application/x-debian-package]
- 正在保存至: “curl_7.68.0-1ubuntu2_arm64.deb”
-
- curl_7.68.0-1ubuntu2_arm64.deb 100%[==========================================================>] 152.94K 33.2KB/s 用时 12s
-
- 2021-06-05 22:05:14 (12.5 KB/s) - 已保存 “curl_7.68.0-1ubuntu2_arm64.deb” [156608/156608])
-
- 下载完毕 --2021-06-05 22:05:14--
- 总用时:37s
- 下载了:2 个文件,31s (6.04 KB/s) 中的 190K
- linuxy@linuxy:~/wget$
wget 后直接添加多个链接也可以实现一次下载多个文件,但是这样太麻烦啦!
使用 -i 参数,可以将多个链接存储到文件中,一次下载文件中的所有链接指向的文件。
wget 是一个常用的 Linux 命令,常用的功能包括下载文件、下载多个文件、断点续传、后台下载等。
参考文献:
[1] https://www.jianshu.com/p/59bb131bc2ab
[2] https://linuxize.com/post/wget-command-examples/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。