为什么这个 wget 命令无法下载这个文件?

Tim*_*Tim -5 download wget

我想知道为什么以下命令无法下载pdf文件,而在浏览器地址栏中粘贴URL可以?(我试图从这个问题中了解一些关于 HTTP、Web 服务或 Web 应用程序的知识)

我该如何使用 wget 下载 pdf 文件?

谢谢。

$ wget https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.598&rep=rep1&type=pdf
[1] 5696
[2] 5697

Redirecting output to ‘wget-log.1’.
[2]+  Done                    rep=rep1

$ cat wget-log
--2019-11-25 13:30:42--  https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.598
Resolving citeseerx.ist.psu.edu (citeseerx.ist.psu.edu)... 130.203.136.95
Connecting to citeseerx.ist.psu.edu (citeseerx.ist.psu.edu)|130.203.136.95|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5641 (5.5K) [text/html]
Saving to: ‘download?doi=10.1.1.99.598’

download?doi=10.1.1.99.598                   100%[============================================================================================>]   5.51K  --.-KB/s    in 0s      

2019-11-25 13:30:42 (453 MB/s) - ‘download?doi=10.1.1.99.598’ saved [5641/5641]

[1]+  Done                    wget https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.598
Run Code Online (Sandbox Code Playgroud)

Gra*_*art 5

看起来您的 shell 正在解释&URL 中的字符,但它们没有到达wget.

您应该单引号字符串,因此您的 shell 将整个内容视为一个字符串,并且不会尝试解释特殊字符:

wget 'https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.598&rep=rep1&type=pdf'
Run Code Online (Sandbox Code Playgroud)