wget 命令下载文件并保存为不同的文件名
Posted
技术标签:
【中文标题】wget 命令下载文件并保存为不同的文件名【英文标题】:wget command to download a file and save as a different filename 【发布时间】:2013-05-16 17:18:12 【问题描述】:我正在使用wget
命令下载文件。但是当它下载到我的本地机器时,我希望它保存为不同的文件名。
例如:我正在从www.examplesite.com/textfile.txt
下载一个文件
我想使用wget
将文件textfile.txt
保存在我的本地目录中为newfile.txt
。我使用wget
命令如下:
wget www.examplesite.com/textfile.txt
【问题讨论】:
我是wget -O newfile.txt
。
但 wget -o 只会将下载进度作为日志文件提供给您。我试过 wget -o。
wget -o
会将日志信息输出到文件中。 wget -O
将输出下载的内容。 man wget
会告诉你所有这些以及更多。
@AndyRoss 所说的:注意大写;它在 unix/linux 领域通常很有意义。
这根本不能回答问题。命令的 OUTPUT 将保存到 -o 文件,但文件本身将使用相同的名称下载,而不是“另存为”。
【参考方案1】:
使用-O file
选项。
例如
wget google.com
...
16:07:52 (538.47 MB/s) - `index.html' saved [10728]
对比
wget -O foo.html google.com
...
16:08:00 (1.57 MB/s) - `foo.html' saved [10728]
【讨论】:
手册页显示:“使用 -O 并不意味着简单地‘使用名称文件而不是 URL 中的文件;’相反,它类似于 shell 重定向:wget -O file http://foo
旨在像 wget -O - http://foo > file
一样工作;文件将被立即截断,所有下载的内容都将写入那里。"
如何追加到 foo.html 而不是覆盖它?
@CraigJacobs 您可以在控制台中输出wget
并将其附加到文件中。例如wget -O - -o /dev/null http://google.com >> foo.html
。 Reference
这种方法会使 --timestamping 无效
如果目录之前不存在,此命令不会创建文件【参考方案2】:
您将使用列出的机械蜗牛命令。请注意大写 O。要使用的完整命令行可能是:
wget www.examplesite.com/textfile.txt --output-document=newfile.txt
或
wget www.examplesite.com/textfile.txt -O newfile.txt
希望对您有所帮助。
【讨论】:
--output-document=newfile.txt
对我有用。所有使用 -O 的尝试都失败,错误为 Resolving webmin_1.630_all.deb (webmin_1.630_all.deb)... failed: Name or service not known.
【参考方案3】:
还要注意命令行参数的顺序。至少在某些系统上(例如 CentOS 6):
wget -O FILE URL
有效。但是:
wget URL -O FILE
不工作。
【讨论】:
【参考方案4】:使用 CentOS Linux 我发现最简单的语法是:
wget "link" -O file.ext
其中"link"
是您要保存的网址,"file.ext"
是您选择的文件名和扩展名。
【讨论】:
我不明白 2 年后用相同的答案回答一个已经回答的问题..【参考方案5】:wget -O yourfilename.zip remote-storage.url/theirfilename.zip
将为您解决问题。
注意:
a) 它的大写字母 O。
b) wget -O filename url
只会起作用。将 -O
放在最后不会。
【讨论】:
【参考方案6】:在这种情况下可以使用curl
或wget
。所有这 3 个命令都做同样的事情,在 http://path/to/file.txt 下载文件并将其保存到本地“my_file.txt”:
wget http://path/to/file.txt -O my_file.txt # my favorite--it has a progress bar
curl http://path/to/file.txt -o my_file.txt
curl http://path/to/file.txt > my_file.txt
注意第一个-O
是大写字母“O”。
wget
命令的好处是它显示了一个漂亮的进度条。
您可以通过比较它们的 sha512 哈希值来证明上述 3 种技术下载的文件完全相同。在运行上述每个命令后运行 sha512sum my_file.txt
并比较结果,显示所有 3 个文件具有完全相同的 sha 哈希(sha 总和),这意味着文件完全相同,逐字节。
另见:How to capture cURL output to a file?
【讨论】:
以上是关于wget 命令下载文件并保存为不同的文件名的主要内容,如果未能解决你的问题,请参考以下文章