wget、curl 命令接受部分文件名

wget、curl 命令接受部分文件名

我正在尝试下载文件hpraid.tar.gz从远程服务器使用

wget --no-check-certificate http://xx.xx.xx/hpraid.tar

curl -O http://xx.xx.xx/hpraid.tar

尽管.gz文件名部分省略了扩展名,但双方都下载了该文件获取卷曲 这个没有任何通配符的部分文件名匹配让我感到困惑。

有什么办法可以强制我获取卷曲匹配完整的文件名?

答案1

您可以使用curl -v telnet://xx.xx.xx:80/并测试该服务器是否是扩展hpraid.tarhpraid.tar.gz.

例子

下面说明了我们如何curl交互使用。这里我们直接从服务器请求以下 URL GET /

$ curl -svLI telnet://www.google.com:80/ <<< "GET /" | head -5
*   Trying 74.125.141.99...
* Connected to www.google.com (74.125.141.99) port 80 (#0)
HTTP/1.0 200 OK
Date: Mon, 09 Jul 2018 19:39:10 GMT
Expires: -1

笔记:从上面我们可以看到,我们GET /向 Google 发送了一条消息,它回复了 STATUS 200。

你的问题

要验证服务器是否正在添加文件扩展名,.gz您可以执行以下操作来自行验证:

$ curl -v telnet://xx.xx.xx.xx/hbraid.tar <<< "GET /"

如果您看到文件正在下载,那么您就知道服务器正在执行附加操作。如果失败,那么您就知道是客户端在执行此操作(curlwget)。

手动?

如果您遇到上述任何问题,您可以手动执行此操作,如下所示:

  1. curl服务器的 HTTP 端口

    $ curl -svLI telnet://www.google.com:80/
    *   Trying 74.125.141.99...
    * Connected to www.google.com (74.125.141.99) port 80 (#0)
    
  2. 获取网址

    GET / <--- hit Return after this 2 times!
    
  3. 目视验证下载

附加工具

您也可以使用socat或做类似的事情。nc

相关内容