如何在 wget 将使用的列表中专门重命名文件?

如何在 wget 将使用的列表中专门重命名文件?

我有一个文件,其中包含一些 YouTube 视频的链接列表。

当我运行命令时:

wget -i list

一切工作正常,但是 wget 会自动将文件重命名为每个链接末尾的乱码。手动运行 wget 不是一个选项,因为链接太多。如何为 wget 能够识别的链接指定自定义名称?

答案1

-O选项允许您指定目标文件名。但是,如果您一次下载多个文件,wget则会将其所有内容保存到您通过 指定的文件中-O。注意无论哪种情况,文件都会被截断如果它已经存在。看手册页了解更多信息。

您可以通过告诉wget一一下载链接来利用此选项:

while IFS= read -r url;do
    fileName="blah" # Add a rule to define a new name for each file here
    wget -O "$fileName" "$url"
done < list

您还可以采取乔乔的建议并在文件中的每个 URL 旁边添加文件名,然后执行以下操作:

while IFS= read -r url fileName;do
    wget -O "$fileName" "$url"
done < list

假设您在文件中的每个 URL 后面添加了一个(唯一的)文件名(用空格分隔)。

答案2

让生活变得简单,不要让生活变得复杂...

制作一个 bash 脚本,将其命名为 list.sh 并添加以下行

wget url -O your-filename 
wget url2 -O your-filename2

想要多少就多少,并使其可执行

chmod 775 list.sh

运行它./list.sh

答案3

您可能想查看youtube-dl联机帮助页。

youtube-dl -a URL-file -o '-o "%(autonumber)s-%(title)s.%(ext)s"

(未经测试)

相关内容