为什么同一个curl命令在windows和linux下输出不同的东西?

Cod*_*yer 3 linux windows terminal powershell curl

为什么同一个curl -o file https://www.link.com/命令输出不同的东西?

例如,如果我curl -o source.txt https://www.youtube.com/playlist?list=PLIx6FwnpuyNW9RxmWaGzKumLu-gUPy-q4使用 YouTube 播放列表链接运行命令。

Linux 输出所有内容,包括所有条目(标题、缩略图、链接等)。

另一方面,Windows 将仅输出页面布局,跳过所有播放列表内容。

我在这里缺少什么?为什么会出现这种情况?是否有不同的 Windows 命令可以实现相同的效果?

Fox*_*loy 9

Curl.exe 存在于装有 Windows 10 1803 或更高版本(这意味着大约从 2018 年 3 月开始)的 Windows 计算机以及类似的服务器版本上。

然而,curl(没有 .exe)有一个有点奇怪的历史,并且 PowerShell 中内置了一些快捷方式,我认为这就是让您感到悲伤的原因。

我是什么意思?

在您的机器上尝试一下。

get-command curl

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           curl -> Invoke-WebRequest
Run Code Online (Sandbox Code Playgroud)

您可能会惊讶地发现,curl在 PowerShell 中,有一个名为 的内置 cmdlet 的别名Invoke-WebRequestcurl这与Linux 或程序中的行为有些相似curl.exe,但实际上有很大不同。

但是,请使用完整的可执行文件名称再次尝试。

 gcm curl.exe

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Application     curl.exe                                           7.55.1.0   C:\WINDOWS\system32\curl.exe
Run Code Online (Sandbox Code Playgroud)

这意味着跑步curl和跑步curl.exe是两件事!

如果你像这样尝试你的命令,它应该与你在 Linux 中找到的类似。

curl.exe -o source.txt https://www.youtube.com/playlist?list=PLIx6FwnpuyNW9RxmWaGzKumLu-gUPy-q4
Run Code Online (Sandbox Code Playgroud)

  • 哇,太疯狂了,我仍然像穴居人一样在我所有的 Windows 机器上下载curl。这是关于 windows 上的curl 发布的公告。https://techcommunity.microsoft.com/t5/containers/tar-and-curl-come-to-windows/ba-p/382409 (2认同)