gpt4 book ai didi

wget --warc-file --recursive,防止写入单个文件

转载 作者:行者123 更新时间:2023-12-04 03:19:26 26 4
gpt4 key购买 nike

我运行 wget 来创建一个 warc 存档,如下所示:

$ wget --warc-file=/tmp/epfl --recursive --level=1 http://www.epfl.ch/

$ l -h /tmp/epfl.warc.gz
-rw-r--r-- 1 david wheel 657K Sep 2 15:18 /tmp/epfl.warc.gz

$ find .
./www.epfl.ch/index.html
./www.epfl.ch/public/hp2013/css/homepage.70a623197f74.css
[...]

我只需要epfl.warc.gz 文件。如何防止 wget 创建所有单独的文件?

我试过如下:

$ wget --warc-file=/tmp/epfl --recursive --level=1 --output-document=/dev/null http://www.epfl.ch/
ERROR: -k or -r can be used together with -O only if outputting to a regular file.

最佳答案

tl;dr 添加选项 --delete-after--no-directories

选项 --delete-after 指示 wget 在下载完成后立即删除每个下载的文件。因此,执行期间的最大磁盘使用量将是 WARC 文件的大小加上单个最大下载文件的大小。

选项 --no-directories 防止 wget 留下无用的空目录树。默认情况下,wget 创建一个镜像主机上的目录树,并将每个文件下载到镜像树的适当目录中。即使由于 --delete-after 而下载的文件是临时文件,wget 也会执行此操作。为防止出现这种情况,请使用选项 --no-directories

下面使用您给定的示例(略有改动)演示了结果。

$ cd $(mktemp -d)
$ wget --delete-after --no-directories \
--warc-file=epfl --recursive --level=1 http://www.epfl.ch/
...
Total wall clock time: 12s
Downloaded: 22 files, 1.4M in 5.9s (239 KB/s)
$ ls -lhA
-rw-rw-r--. 1 chadv chadv 1.5M Aug 31 07:55 epfl.warc

如果您忘记使用 --no-directories,您可以使用 find -type d -delete 轻松清理空目录树。

关于wget --warc-file --recursive,防止写入单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39293501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com