【问题标题】:How do I request a file but not save it with Wget? [closed]如何请求文件但不使用 Wget 保存? [关闭]
【发布时间】:2012-03-30 06:53:00
【问题描述】:

我正在使用 Wget 向新的 Web 服务器发出 http 请求。我这样做是为了加热 MySQL 缓存。我不想在提供文件后保存文件。

wget -nv -do-not-save-file $url

我可以用 wget 做类似-do-not-save-file 的事情吗?

【问题讨论】:

  • 对于超级用户或 Unix.SE 来说这是一个更好的问题。
  • 作为一名开发人员,我想用 wget 测试服务器,而这个问题是严肃的话题。由于主题最佳答案获得 142 票赞成,因此该问题应重新启用为主题
  • 替代 -q 和 -O,使用标志 -nd(无目录)和 --delete-after。
  • 根据帮助文档(wget -h),您可以使用--spider 选项跳过下载(版本1.14)。

标签: linux caching wget


【解决方案1】:

使用q 标志用于安静模式,并告诉wget 使用O-(大写o)输出到标准输出并重定向到/dev/null 以丢弃输出:

wget -qO- $url &> /dev/null

> 重定向应用程序输出(到文件)。如果> 前面带有& 符号,shell 会将所有输出(错误和正常)重定向到> 的文件右侧。如果不指定 & 符号,则只会重定向正常输出。

./app &>  file # redirect error and standard output to file
./app >   file # redirect standard output to file
./app 2>  file # redirect error output to file

如果文件是/dev/null,则全部丢弃。

这同样有效,而且更简单:

wget -O/dev/null -q $url

【讨论】:

  • 这个命令中的&和大于做什么?您可以将输出通过管道传输到 /dev/null ... wget -qO- | /dev/null ... ?
  • 呃,我试过了,但它对我不起作用。根据我的发现,和号应该在大于符号之后。
  • 对于 Windows 用户:wget -q -O NUL http://... 关闭日志记录并将下载路由到 NUL(与 /dev/null 相同)
  • wget --spider $url 会做的。
  • wget -O/dev/null $url
【解决方案2】:

您可以使用-O-(大写o)将内容重定向到标准输出(标准输出)或文件(甚至是特殊文件,如/dev/null/dev/stderr/dev/stdout

wget -O- http://yourdomain.com

或者:

wget -O- http://yourdomain.com > /dev/null

或者:(与上一条命令的结果相同)

wget -O/dev/null http://yourdomain.com

【讨论】:

  • 谢谢,也适用于 Windows。
  • 谢谢,direct-to-/dev/null 很聪明,因此正确答案是:我想要“统计输出”,而不是内容。
【解决方案3】:

Curl 默认情况下会这样做,不带任何参数或标志,我会将其用于您的目的:

curl $url > /dev/null 2>&1

Curl 更多关于流,wget 更多关于基于this comparison 复制网站。

【讨论】:

  • 冷你解释一下 2>&1 是什么意思?我明白了 > 但为什么会结束?
  • @gladoscc 第一个 >/dev/null 重定向 std out 到 /dev/null(>/dev/null1>/dev/null 的缩写),第二个重定向 std err 到标准输出。
  • @apscience 只是为了补充。标准输出的文件描述符为 1。当您从重定向中删除描述符时,Shell 假定标准输出。所以>foo 被解释为1>foo。当& 跟随重定向时,它指示shell 将前一个文件描述符重定向到与后一个文件描述符相同的输出。在这种情况下,2>&1 表示将文件描述符 2 (std err) 重定向到与文件描述符 1 (std out) 相同的位置。由于 std out 已经被重定向到 /dev/null,std err 也将被重定向到那里。你也可以写:1>/dev/null 2>/dev/null2>/dev/null >&2
  • 此答案是正确的,但随后包含与所选答案相同的输出重定向。只需运行curl http://www.example.com 就足够了。
猜你喜欢
  • 2011-05-03
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2013-07-15
相关资源
最近更新 更多