如果文件已存在于 wget 中,则跳过下载?

发布于 2024-10-16 17:52:28 字数 147 浏览 6 评论 0原文

这是一个简单的 wget 命令:

wget http://www.example.com/images/misc/pic.png

如果 pic.png 已经可用,如何使 wget 跳过下载?

Here is a simple wget command:

wget http://www.example.com/images/misc/pic.png

How to make wget skip download if pic.png is already available ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

陪我终i 2024-10-23 17:52:29

我遇到了 -N 问题,因为我想将输出保存到不同的文件名。

时间戳,wget 文档

如果满足以下两个条件之一,文件将被视为新文件:

  1. 本地尚不存在同名文件。
  2. 该名称的文件确实存在,但远程文件的修改时间比本地文件更新。

使用 test

test -f stackoverflow.html || wget -O stackoverflow.html https://stackoverflow.com/

如果文件存在不存在,test 将计算为 FALSE,因此将执行 wget

I had issues with -N as I wanted to save output to a different file name.

Timestamping, wget docs:

A file is considered new if one of these two conditions are met:

  1. A file of that name does not already exist locally.
  2. A file of that name does exist, but the remote file was modified more recently than the local file.

Using test:

test -f stackoverflow.html || wget -O stackoverflow.html https://stackoverflow.com/

If the file exists does not exist test will evaluate to FALSE so wget will be executed.

空袭的梦i 2024-10-23 17:52:28

尝试以下参数:

-nc--no-clobber:跳过将下载到的下载
现有文件。

使用示例:

wget -nc http://example.com/pic.png

Try the following parameter:

-nc, --no-clobber: skip downloads that would download to
existing files.

Sample usage:

wget -nc http://example.com/pic.png
青丝拂面 2024-10-23 17:52:28

-nc--no-clobber 选项不是最佳解决方案,因为不会下载较新的文件。应使用 -N 来代替,仅当服务器有较新版本时才会下载并覆盖文件,因此正确答案是:

wget -N http://www.example.com/images/misc/pic.png

然后使用 -N 运行 Wget,无论是否使用 -r-p,决定是否下载文件的较新副本取决于文件的本地和远程时间戳和大小。 -nc 不能与 -N 同时指定。

-N--timestamping:打开时间戳。

The -nc, --no-clobber option isn't the best solution as newer files will not be downloaded. One should use -N instead which will download and overwrite the file only if the server has a newer version, so the correct answer is:

wget -N http://www.example.com/images/misc/pic.png

Then running Wget with -N, with or without -r or -p, the decision as to whether or not to download a newer copy of a file depends on the local and remote timestamp and size of the file. -nc may not be specified at the same time as -N.

-N, --timestamping: Turn on time-stamping.

闻呓 2024-10-23 17:52:28

我正在寻找的答案位于 https://unix.stackexchange.com/a/9557/114862

当本地文件大小大于或等于服务器版本时,使用 -c 标志将避免重新下载。

The answer I was looking for is at https://unix.stackexchange.com/a/9557/114862.

Using the -c flag when the local file is of greater or equal size to the server version will avoid re-downloading.

云裳 2024-10-23 17:52:28

使用 -r-p 运行 Wget,但不使用 -N-nd时-nc,重新下载文件将导致新副本简单地覆盖旧副本。

因此添加 -nc 将阻止这种行为,而是导致保留原始版本并忽略服务器上的任何较新副本。

在 GNU 上查看更多信息。

When running Wget with -r or -p, but without -N, -nd, or -nc, re-downloading a file will result in the new copy simply overwriting the old.

So adding -nc will prevent this behavior, instead causing the original version to be preserved and any newer copies on the server to be ignored.

See more info at GNU.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文