【问题标题】:wget command to download a file and save as a different filenamewget 命令下载文件并保存为不同的文件名
【发布时间】:2013-05-16 17:18:12
【问题描述】:

我正在使用wget 命令下载文件。但是当它下载到我的本地机器时,我希望它保存为不同的文件名。

例如:我正在从www.examplesite.com/textfile.txt下载一个文件

我想使用wget 将文件textfile.txt 保存在我的本地目录中为newfile.txt。我使用wget命令如下:

wget www.examplesite.com/textfile.txt

【问题讨论】:

  • 我是wget -O newfile.txt
  • 但 wget -o 只会将下载进度作为日志文件提供给您。我试过 wget -o。
  • wget -o 会将日志信息输出到文件中。 wget -O 将输出下载的内容。 man wget 会告诉你所有这些以及更多。
  • @AndyRoss 所说的:注意大写;它在 unix/linux 领域通常很有意义。
  • 这根本不能回答问题。命令的 OUTPUT 将保存到 -o 文件,但文件本身将使用相同的名称下载,而不是“另存为”。

标签: download wget


【解决方案1】:

使用-O file 选项。

例如

wget google.com
...
16:07:52 (538.47 MB/s) - `index.html' saved [10728]

对比

wget -O foo.html google.com
...
16:08:00 (1.57 MB/s) - `foo.html' saved [10728]

【讨论】:

  • 手册页显示:“使用 -O 并不意味着简单地‘使用名称文件而不是 URL 中的文件;’相反,它类似于 shell 重定向:wget -O file http://foo 旨在像 wget -O - http://foo > file 一样工作;文件将被立即截断,所有下载的内容都将写入那里。"
  • 如何追加到 foo.html 而不是覆盖它?
  • @CraigJacobs 您可以在控制台中输出wget 并将其附加到文件中。例如wget -O - -o /dev/null http://google.com >> foo.htmlReference
  • 这种方法会使 --timestamping 无效
  • 如果目录之前不存在,此命令不会创建文件
【解决方案2】:

您将使用列出的机械蜗牛命令。请注意大写 O。要使用的完整命令行可能是:

wget www.examplesite.com/textfile.txt --output-document=newfile.txt

wget www.examplesite.com/textfile.txt -O newfile.txt

希望对您有所帮助。

【讨论】:

  • --output-document=newfile.txt 对我有用。所有使用 -O 的尝试都失败,错误为 Resolving webmin_1.630_all.deb (webmin_1.630_all.deb)... failed: Name or service not known.
【解决方案3】:

还要注意命令行参数的顺序。至少在某些系统上(例如 CentOS 6):

wget -O FILE URL

有效。但是:

wget URL -O FILE

不工作。

【讨论】:

    【解决方案4】:

    使用 CentOS Linux 我发现最简单的语法是:

    wget "link" -O file.ext
    

    其中"link" 是您要保存的网址,"file.ext" 是您选择的文件名和扩展名。

    【讨论】:

    • 我不明白 2 年后用相同的答案回答一个已经回答的问题..
    【解决方案5】:
    wget -O yourfilename.zip remote-storage.url/theirfilename.zip
    

    将为您解决问题。

    注意:

    a) 它的大写字母 O。

    b) wget -O filename url 只会起作用。将 -O 放在最后不会。

    【讨论】:

      【解决方案6】:

      在这种情况下可以使用curlwget。所有这 3 个命令都做同样的事情,在 http://path/to/file.txt 下载文件并将其保存到本地“my_file.txt”:

      wget http://path/to/file.txt -O my_file.txt  # my favorite--it has a progress bar
      curl http://path/to/file.txt -o my_file.txt
      curl http://path/to/file.txt > my_file.txt
      

      注意第一个-O 是大写字母“O”。

      wget 命令的好处是它显示了一个漂亮的进度条。

      您可以通过比较它们的 sha512 哈希值来证明上述 3 种技术下载的文件完全相同。在运行上述每个命令后运行 sha512sum my_file.txt 并比较结果,显示所有 3 个文件具有完全相同的 sha 哈希(sha 总和),这意味着文件完全相同,逐字节。

      另见:How to capture cURL output to a file?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 2011-01-30
        相关资源
        最近更新 更多