Unix 为什么curl在这种情况下会失败?
我正在尝试从以下链接下载该文件:Unix 为什么curl在这种情况下会失败?,unix,curl,download,Unix,Curl,Download,我正在尝试从以下链接下载该文件: http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&sendto=on&log$=seqview&db=nuccore&dopt=gilist&sort=&query_key=1&qty=12654729&filter=all 在web浏览器(Chrome)的地址栏中粘贴上述链接时,我可以将文件另存为“sequence.gi.txt
http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&sendto=on&log$=seqview&db=nuccore&dopt=gilist&sort=&query_key=1&qty=12654729&filter=all
在web浏览器(Chrome)的地址栏中粘贴上述链接时,我可以将文件另存为“sequence.gi.txt”
但当我在终端中尝试此操作时,会出现以下错误:
curl -o test.txt http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&sendto=on&log$=seqview&db=nuccore&dopt=gilist&sort=&query_key=1&qty=12654729&filter=all
[1] 30036
[2] 30037
[3] 30038
[4] 30039
[5] 30040
[6] 30041
[7] 30042
[8] 30043
-bash: log$=seqview: command not found
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
101 7297 0 7297 0 0 59633 0 --:--:-- --:--:-- --:--:-- 79315
[1] Done curl -L -o test.txt http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal
[2] Done sendto=on
[3] Exit 127 log$=seqview
[4] Done db=nuccore
[5] Done dopt=gilist
[6] Done sort=
[7]- Done query_key=1
[8]+ Done qty=12654729
如何在命令行中下载文件?url中的
&
告诉bash,它之前的所有内容都是应该在后台运行的命令。因此,每个&
之后的所有内容都被解释为在后台运行的新命令,这就是为什么您在尝试运行命令时会看到大量虚假进程启动的原因。尝试将url放在单引号中'http://....“
为避免bash将$和(&C)字符解释为特殊字符:
curl -o test.txt 'http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&sendto=on&log$=seqview&db=nuccore&dopt=gilist&sort=&query_key=1&qty=12654729&filter=all'
非常感谢。它起作用了……虽然有一部分。现在上面的命令下载了一个文件,但不是我所期望的。当我通过网络浏览器下载它时,我会得到一个文本文件,这是预期的。但通过终端,我得到一个包含错误消息的文件,上面写着“您的会话已过期,请重复搜索”。知道为什么会有不同吗?谢谢。您联系的网站正在通过cookies跟踪浏览会话。curl不使用cookies,除非被告知这样做。不过我不是这方面的专家。一些可能有帮助的信息是和。也许这是另一个问题的主题?=)非常感谢你!我现在明白为什么了。你解释的深度正是我想要的。