【发布时间】:2017-07-19 18:04:34
【问题描述】:
我想将 wget 与 -O/--output-document 选项(将输出保存到指定的文件名)和 --backups 选项(在给定数量的备份之间轮换)一起使用。
简单的测试用例:
wget http://google.com -O myfile --backups=7
必须至少运行两次才能测试备份行为。
预期行为:运行两次后,我将在输出目录中同时拥有 myfile.1 和 myfile,但时间戳不同。
实际行为:它只是覆盖myfile,myfile.1 没有创建。
根据 --backups 选项的文档: (https://www.gnu.org/software/wget/manual/wget.html),
‘--backups=backups’
在(覆盖)写入文件之前,通过在文件名中添加“.1”后缀(VMS 上的“_1”)来备份现有文件。此类备份文件会轮换为“.2”、“.3”等,直至备份(并在此之后丢失)。
如果不先备份现有文件,则不应覆盖。在此选项或 -O/--output-document 选项中都没有提到它们不应该一起工作。
这是正确的吗?我错过了什么吗?这是一个错误吗?
我可以在-O/--output-document 部分看到它:
使用“-O”并不意味着简单地表示“使用名称文件而不是 URL 中的文件”;相反,它类似于 shell 重定向:‘wget -O file http://foo’旨在像‘wget -O - http://foo > file’一样工作;文件将立即被截断,所有下载的内容都将写入那里。
不过,我并不认为这意味着 --backups 不应该工作,因为它仍然是一个有用的功能,即使将所有输出连接到单个文件。
还有其他方法可以做到这一点吗? (我想我可以编写自己的备份轮换脚本,但这很痛苦——如果可能的话,寻找已经预先制作好的东西。)
非常感谢。
【问题讨论】: