我渴望知道的区别curl
和wget
。两者都用于获取文件和文档,但它们之间的主要区别是什么。
为什么有两个不同的程序?
是否可以节流(限制)wget
或的下载速度curl
?
下载时是否可以更改节流值?
我想使用终端从我的谷歌驱动器下载一个文件夹?有没有办法做到这一点?我试过这个:
$ wget "https://drive.google.com/folderview?id=0B-Zc9K0k9q-WWUlqMXAyTG40MjA&usp=sharing"
Run Code Online (Sandbox Code Playgroud)
但它正在下载这个文本文件:folderview?id=0B-Zc9K0k9q-WdEY5a1BCUDBaejQ&usp=sharing
. 有没有办法从终端下载谷歌驱动器文件夹?
sudo apt-get install pppoe
Run Code Online (Sandbox Code Playgroud)
将下载pppoe
包并安装它。
是否可以只下载pppoe
软件包而不用apt-get
命令安装它?
wget http://ftp.us.debian.org/debian/pool/main/p/ppp/ppp_2.4.7-1+4_amd64.deb
Run Code Online (Sandbox Code Playgroud)
ppp_2.4.7-1+4_amd64.deb
现在在当前目录中。
cd /tmp
sudo apt-get install -d ppp
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
ppp
0 upgraded, 1 newly installed, 0 to remove and 95 not upgraded.
Need to get 0 B/346 kB of archives.
After this operation, 949 kB of additional disk space will be used.
Download complete and in download only …
Run Code Online (Sandbox Code Playgroud) 如何使用 Linux 命令行工具恢复部分下载的文件?
我部分下载了一个大文件,即由于电源中断,900 MB 中有 400 MB,但是当我再次开始下载时,它又从头开始。我如何从 400 MB 本身开始?
假设list_of_urls
看起来像这样:
http://www.url1.com/some.txt
http://www.url2.com/video.mp4
Run Code Online (Sandbox Code Playgroud)
我知道如何使用它:
wget -i list_of_urls
Run Code Online (Sandbox Code Playgroud)
但是,如果我list_of_urls
有这个,并且它们都返回正确的文件,如 PDF 或视频,该怎么办:
http://www.url1.com/app?q=123&gibb=erish&gar=ble
http://www.url2.com/app?q=111&wha=tcha&mac=allit
Run Code Online (Sandbox Code Playgroud)
对于单个文件,我可以这样做:
wget -O some.txt "http://www.url1.com/app?q=123&gibb=erish&gar=ble"
Run Code Online (Sandbox Code Playgroud)
如何使用wget
下载该 URL 列表并将返回的数据保存到正确的本地文件?
我需要下载一个大文件(1GB)。我也可以访问多台运行 Linux 的计算机,但每台计算机的下载速度都受到管理员策略的限制,下载速度为 50kB/s。
如何在多台计算机上分发下载此文件并在下载所有段后合并它们,以便我可以更快地接收它?
是否有现有工具可用于通过不良连接下载大文件?
我必须定期下载一个相对较小的文件:300 MB,但慢速(80-120 KB/秒)TCP 连接在 10-120 秒后随机中断。(这是一家大公司的网络。我们多次联系他们的管理员(在印度工作),但他们不能或不想做任何事情。)问题可能出在他们的反向代理/负载平衡器上。
到目前为止,我使用了 pcurl 的修改版本:https : //github.com/brunoborges/pcurl
我改变了这一行:
curl -s --range ${START_SEG}-${END_SEG} -o ${FILENAME}.part${i} ${URL} &
Run Code Online (Sandbox Code Playgroud)
对此:
curl -s --retry 9999 --retry-delay 3 --speed-limit 2048 --speed-time 10 \
--retry-max-time 0 -C - --range ${START_SEG}-${END_SEG} -o ${FILENAME}.part${i} ${URL} &
Run Code Online (Sandbox Code Playgroud)
我不得不补充,--speed-limit 2048 --speed-time 10
因为连接失败时通常会挂起几分钟。
但是最近连这个脚本都完成不了。
一个问题是它似乎忽略了该-C -
部分,因此在重试后它不会“继续”该段。它似乎截断了相关的临时文件,并在每次失败后从头开始。(我认为--range
和-C
选项不能一起使用。)
另一个问题是该脚本同时下载所有段。它不能有 300 个分段,其中一次只能下载 10 个分段。
我正在考虑为此特定目的用 C# 编写一个下载工具,但是如果有一个现有的工具,或者 curl 命令可以使用不同的参数正常工作,那么我可以腾出一些时间。
更新 1:附加信息:不应删除并行下载功能,因为它们有每个连接的带宽限制(80-120 KB / 秒,主要是 80),因此 10 个连接可以导致 10 倍的加速。我必须在 1 …
我有一个配置文件,其中包含我要下载的 URI 列表。例如,
http://xyz.abc.com/Dir1/Dir3/sds.exe
http://xyz.abc.com/Dir2/Dir4/jhjs.exe
http://xyz.abc.com/Dir1/itr.exe
Run Code Online (Sandbox Code Playgroud)
我想读取配置文件并复制每个 URL,但同时创建与主机上相同的目录结构。例如,对于配置文件中的第一行,我想在我的本地机器上创建目录结构 Dir1/Dir3(如果它不存在),然后将 sds.exe 复制到 .../Dir1/Dir3/
我发现我可以使用 'wget -i' 下载文件中的所有 URL,但是如何使用它创建相应的目录结构
如何下载完整的网站,但忽略所有二进制文件。
wget
使用该-r
标志具有此功能,但它可以下载所有内容,并且某些网站对于资源不足的机器来说太多了,并且由于我正在下载该网站的特定原因,它没有用。
这是我使用的命令行:(wget -P 20 -r -l 0 http://www.omardo.com/blog
我自己的博客)
download ×10
wget ×6
curl ×4
files ×2
apt ×1
cluster ×1
http ×1
links ×1
mime-types ×1
networking ×1
parallelism ×1
recursive ×1
utilities ×1