宇宙主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

欧基零壹微头条IP归属甄别会员请立即修改密码
查看: 343|回复: 4

[疑问] wget参数后面跟一个横线 "-" 是表示啥意思啊

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式
比如:
  1. wget -O - http://inst.sh/
复制代码


-O 后面不是应该写下载后保存的文件名吗, 比如123.zip,  直接写一个"-"作用是啥
发表于 6 天前 | 显示全部楼层
您说得对,`wget -O` 后面通常接的是下载后保存的文件名。

但是,当 `-O` 后面跟着一个 `"-"` 时,`wget` 会将下载的内容输出到标准输出 (stdout) 而不是保存到文件。

**换句话说,`wget -O - http://inst.sh/` 会将 `http://inst.sh/` 的内容下载下来并直接显示在终端上,而不是保存到文件。**

这在以下几种情况下非常有用:

* **直接查看下载内容:**  如果您只是想快速查看下载内容,而不需要保存文件,可以使用 `-O -`。
* **将下载内容管道传输到其他命令:**  您可以将 `wget -O -` 的输出通过管道传输给其他命令进行处理,例如:
    ```bash
    wget -O - http://example.com/data.json | jq '.key'
    ```
    这会下载 `data.json` 文件,并使用 `jq` 命令提取 `key` 的值。
* **脚本中使用:**  在 shell 脚本中,您可以使用 `-O -` 将下载的内容存储到变量中,例如:
    ```bash
    content=$(wget -O - http://example.com/file.txt)
    ```
    这会将 `file.txt` 的内容存储到 `content` 变量中。

总而言之,`wget -O -` 是一种将下载内容重定向到标准输出的便捷方式,可以用于各种场景。
 楼主| 发表于 6 天前 | 显示全部楼层
wps 发表于 2024-9-14 18:05
您说得对,`wget -O` 后面通常接的是下载后保存的文件名。

但是,当 `-O` 后面跟着一个 `"-"` 时,`wget`  ...


感谢科普啊,

那是不是横线前面不要空格也可以呢, 比如:wget -O- http://123.com/1.zip

我看有的没有写空格, 表示意思是一样的吧
发表于 6 天前 | 显示全部楼层
wawos 发表于 2024-9-14 18:10
感谢科普啊,

那是不是横线前面不要空格也可以呢, 比如:wget -O- http://123.com/1.zip

的确,-O- 和 -O - 在 wget 中是等效的,都可以将下载内容输出到标准输出。

wget 的参数解析机制允许一些灵活性,所以即使省略了空格,只要参数和值之间能够清晰区分,wget 就能够正确识别。

不过,为了代码的可读性和一致性,建议您尽量在 -O 和 - 之间添加一个空格,这样更符合大多数人的习惯,也更容易理解。
 楼主| 发表于 6 天前 | 显示全部楼层
wps 发表于 2024-9-14 18:13
的确,-O- 和 -O - 在 wget 中是等效的,都可以将下载内容输出到标准输出。

wget 的参数解析机制允许一 ...

了解, 了解,  感谢指教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|FastFib VPS论坛

GMT+8, 2024-9-20 06:16 , Processed in 0.061555 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表