Linux 用于URL列表和重命名的并行下载
我有一个标签分隔的URL列表和目标文件名,Linux 用于URL列表和重命名的并行下载,linux,wget,Linux,Wget,我有一个标签分隔的URL列表和目标文件名,url\u to\u download.txt,例如: first_file.jpg\thttps://www.google.co.il/images/srpr/logo11w.png /subdir_1/second_file.jpg\thttps://www.google.co.il/images/srpr/logo12w.png ... last_file.jpg\thttps://www.google.co.il/images/srpr/logo
url\u to\u download.txt
,例如:
first_file.jpg\thttps://www.google.co.il/images/srpr/logo11w.png
/subdir_1/second_file.jpg\thttps://www.google.co.il/images/srpr/logo12w.png
...
last_file.jpg\thttps://www.google.co.il/images/srpr/logo99w.png
我想通过几个连接下载它
例如,我可以通过以下方式实现:
cat URL_to_download.txt|xargs-n 1-p 10 wget-nc
我的问题是,如何使文件具有我想要的新名称,以便输出目录具有:
first_file.jpg
/subdir1/second_file.jpg
...
last_file.jpg
我猜这样的事情应该适合你:
#!/bin/bash
while read FILENAME URL; do
wget -nc -O "$FILENAME" "$URL"
done <input.txt
#/bin/bash
读取文件名URL时;做
wget-nc-O“$FILENAME”“$URL”
完成我猜这样的事情应该适合你:
#!/bin/bash
while read FILENAME URL; do
wget -nc -O "$FILENAME" "$URL"
done <input.txt
#/bin/bash
读取文件名URL时;做
wget-nc-O“$FILENAME”“$URL”
完成尝试此命令以同时下载文件:
`cut -f 2 urls_to_download.txt | wget -i -;`
`cut -f 2 urls_to_download.txt | sed 's/.*\///' | while read f; do mv $f $(cut -f 1 urls_to_download.txt); done`
我找不到使用wget
选项正确重命名文件的方法,您需要进行修改,以确保mv
命令中存在该目录。尝试此命令以同时下载文件:
`cut -f 2 urls_to_download.txt | wget -i -;`
`cut -f 2 urls_to_download.txt | sed 's/.*\///' | while read f; do mv $f $(cut -f 1 urls_to_download.txt); done`
我找不到使用wget
选项正确重命名文件的方法,您需要进行修改,以确保mv
命令中存在该目录
请注意,文件中的文件名使用的是绝对路径。因此,您最好将这些名称重写为相对路径
在shell中,只有使用&
放置流程背景才能使您的工作并行
例如,如果您希望并行,可以执行以下操作:
#!/bin/bash
while read FILENAME URL
do
wget -nc -O "./$FILENAME" "$URL" & # So `wget` runs in background
done < input.txt
然而,这种方法非常简单,它不是控制并行任务数量的最有效和最准确的方法
请注意,文件中的文件名使用的是绝对路径。因此,您最好将这些名称重写为相对路径
在shell中,只有使用&
放置流程背景才能使您的工作并行
例如,如果您希望并行,可以执行以下操作:
#!/bin/bash
while read FILENAME URL
do
wget -nc -O "./$FILENAME" "$URL" & # So `wget` runs in background
done < input.txt
但是,此方法非常简单,因此它不是控制并行任务数量的最有效和最准确的方法。只需使用wget
的-x
选项:
-x
--强制目录
与-nd相反的是——创建一个目录层次结构,即使没有创建一个目录层次结构
否则。例如,wget-x将下载的文件保存到
fly.srk.fer.hr/robots.txt
只需使用wget的-x
选项:
-x
--强制目录
与-nd相反的是——创建一个目录层次结构,即使没有创建一个目录层次结构
否则。例如,wget-x将下载的文件保存到
fly.srk.fer.hr/robots.txt
sed -e 's|\t|\n|g' urls_to_download.txt | xargs -n 1 -P 10 wget -nc -x