You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让wget不覆盖/忽略文件?解决批量同名PDF下载问题

解决wget批量下载同名PDF时自动重命名的问题

嘿,我太懂你折腾2小时找不到解决方案的烦躁——批量下载100个同名的templates.pdf,wget要么直接跳过已存在的文件,要么直接覆盖,完全没法区分不同网站的文件对吧?别慌,这两个简单的脚本方法就能帮你自动生成templates1.pdftemplates2.pdf这类有序命名的文件:

方法一:用Bash循环+wget实现自动编号

首先把那100个目标网站的URL单独存到一个文本文件里(比如叫templates_urls.txt),每行放一个URL。然后在终端里运行下面的脚本:

# 初始化计数器,从1开始
count=1
# 逐行读取URL文件里的链接
while read -r url; do
  # 用wget下载并指定输出文件名,计数器自动递增
  wget "$url" -O "templates$count.pdf"
  count=$((count + 1))
done < templates_urls.txt

解释下关键部分:

  • -r 参数确保读取URL时不会忽略特殊字符(比如URL里的空格)
  • -O 参数强制wget把下载的内容保存为指定的文件名,这里结合计数器count实现自动编号
  • 每次循环后计数器count加1,确保每个PDF文件名唯一

方法二:用curl替代wget(如果更习惯curl的话)

如果平时用curl更多,逻辑是一样的,只是换个命令:

count=1
while read -r url; do
  curl "$url" -o "templates$count.pdf"
  count=$((count + 1))
done < templates_urls.txt

-o 参数和wget的-O作用一致,都是指定输出文件名。

额外提示

如果你的400个网站列表里混着其他不同文件名的PDF,可以先把这100个templates.pdf的URL筛选出来单独处理,剩下的300个直接用普通wget -i all_urls.txt下载就行,这样不会影响其他正常命名的文件。

内容的提问来源于stack exchange,提问作者Συλχαν

火山引擎 最新活动