避免使用 wget 创建多个文件

Kat*_*kas 3 wget shell-script

我曾经wget每 10 秒调用一次链接,如下所示:

#/bin/sh
while true; do
    wget http://www.some.random.link/to/some/PHP/script
    sleep 10
done
Run Code Online (Sandbox Code Playgroud)

这会产生空文件,称为script_name.#where#在每次运行时递增。

为什么会发生这种情况?

Ind*_*rek 5

那是因为 wget 下载脚本的输出(大概是空的)并将其保存到文件中,每次附加一个数字以免覆盖先前下载的文件。

有几种方法可以防止这种情况发生。

  1. 使用--spider选项阻止 wget 下载任何东西:
    wget --spider http://www.some.random.link/to/some/PHP/script
    但是,这可能会导致您的脚本无法工作,因为 IIRC,它只发出HEAD请求。
  2. 下载输出,但将其发送到/dev/null
    wget -O /dev/null http://www.some.random.link/to/some/PHP/script
  3. 下载输出,但如果之后删除,请使用以下--delete-after选项:
    wget --delete-after http://www.some.random.link/to/some/PHP/script
  4. 为了完整起见,如果您可以使用一个文件,请使用-nc选项阻止 wget 下载本地已存在的文件:
    wget -nc http://www.some.random.link/to/some/PHP/script