如何允许wget覆盖文件


9

使用wget命令,无论我调用多少次,如何每次都允许/指示覆盖本地文件。

假设我要从以下位置下载文件:http://server/folder/file1.html

在这里,每当我说时wget http://server/folder/file1.htmlfile1.html无论更改时间,已下载时间等,我都希望在本地系统中将其覆盖。我的意图/用例是,当我调用wget时,我非常确定替换/覆盖现有文件。

我已经尝试了以下选项,但是每个选项都旨在用于其他目的。

  1. -nc => --no-clobber
  2. -N =>开启时间戳
  3. -r =>启用递归检索

Answers:


7
wget -q http://www.whatever.com/filename.txt -O /path/filename.txt 

-q是安静模式,因此您可以将其扔到cron中,而无需从命令中获取任何输出


wget没有我明确指定使用-O filename?的情况下,命令中没有直接选项可以执行此操作?
加纳南

3
使用wget下载文件时,似乎没有办法强制覆盖每个文件。但是,使用-N选项可以确保强制下载和覆盖较新的文件。wget -N如果大小或时间戳更改,将覆盖原始文件
aleroot 2010年

不对。将命令的输出定向到stdout并将其通过管道传输到文件:wget -q $ urlYouNeedToGrap> $ fileYouWantToOverwriteEverytime
rasjani 2010年

8

此选项有效

wget -N http://server/folder/file1.html

信息

-N,  --timestamping            don't re-retrieve files unless newer than
                               local.

4

curl代替吗?

curl http://server/folder/file1.html > file1.html

我不是Linux专家。之间有什么根本区别wgetcurl?我确定每个命令都是出于某些特定目的。
加纳南姆

1
@Gnanam:实际上,它们在基本的CLI实用程序中有很多重叠。两者都可以建立HTTP连接并将结果保存到磁盘。要查看差异,请查看daniel.haxx.se/docs/curl-vs-wget.html 不管如何,以上用法完全有效。这个一般领域也有其他工具:curl.haxx.se/docs/comparison-table.html
Stu Thompson 2010年

这两个链接确实有助于理解它们之间的区别。
加纳南

0

我认为除非您也下载了目录(因此请传递-x标志),否则您不能这样做。如果知道文件是什么,则可以使用-O filename,例如:
wget http://yourdomain.com/index.html -O index.html


0

未尝试:也许您可以使用wget -r --level=0

另一种可能性:curl -O覆盖(但是它使用不同的方式选择文件名,这可能对您无关紧要)。


wget行实际上并没有做正确的事情,因为它创建了子目录的层次结构。curl -O另一方面,正确下载文件,覆盖现有副本。
2013年

0

为什么不在脚本中的wget周围放一个小包装?

该脚本可以将所有文件移到一个临时位置,然后获取远程文件/网页。

成功后,删除临时位置中的文件。失败时,将文件移回并引发错误。

除非特别知道所有文件的名称,否则没有简单的方法可以仅使用wget来执行所需的操作,在这种情况下,-O选项将允许您强制下载文件的文件名。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.