我正在尝试下载带有bash
和wget
的具有扩展名扩展名的图像。我必须直接定位文件,因为在父文件夹上出现403错误,因此无法通过定位父文件夹使用-A
选项。
现在,我有以下代码可以在.jgp
上正常工作,但是例如如果下一个文件是.png
,则我的循环中断并继续到下一个文件夹,因此.png
当前文件夹中的文件不会下载。
for i in {1..945}; do
for j in {01..100}; do
j=`printf '%02d' $j`
ret=$(wget -O ch${i}-${j}.jpg https://www.domain.co/uploads/chapters/chapitre-${i}/${j}.jpg 2>&1)
if [[ "$ret" =~ 404\ Not\ Found ]]; then
break
fi
done
done
无论扩展名如何,我都无法找到一种下载文件的方法。
编辑:
所以这是我对感兴趣的人的最后摘要。
它的作用是:
.jpg
还是.png
,然后相应地重命名
for i in {245..945}; do
for j in {01..60}; do
j=`printf '%02d' $j`
ret=$(wget -O ch${i}-${j}.jpg https://www.yourdomain.co/uploads/parentfoldernumber-${i}/image-${j}.jpg 2>&1)
if [[ $? -ne 0 ]]; then
ret=$(wget -O ch${i}-${j}.png https://www.yourdomain.co/uploads/parentfoldernumber-${i}/image-${j}.png 2>&1)
fi
if [[ "$ret" =~ 404\ Not\ Found ]]; then
break
fi
done
find . -type f -empty -delete
done
答案 0 :(得分:3)
我尝试了一些东西,也许会对您有所帮助
$?
是bash的命令,它返回上一次运行命令的输出。
如果未找到* .png,则输出将不会为0。
if [[ $? -ne 0 ]]; then
ret=$(wget -O ch${i}-${j}.png http://localhost/l4urstyle/wp-content/uploads/2018/${i}/${j}.png 2>&1)
fi
if [[ "$ret" =~ 404\ Not\ Found ]]; then
echo "breaking code"
break
fi
希望这对您有所帮助。 如果这可行。请接受答案。 :D 以及关于0字节大小的文件正在下载。我会想一想,让您知道我可以如何帮助您。
快乐编码:D