Скачивайте файлы с разными расширениями с помощью bash и wget - PullRequest
1 голос
/ 07 июня 2019

Я пытаюсь загрузить изображения с различными расширениями с 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

У меня проблемы с поиском способа загрузки файла независимо от его расширения.

EDIT:

Итак, вот мой последний фрагмент для тех, кто заинтересован.
Что он делает:

рекурсивный просмотр папки и ее содержимого проверьте, является ли файл .jpg или .png, а затем переименуйте его соответствующим образом возвращается к предыдущему циклу (родительской папке), если 404 удалить пустые файлы, созданные с помощью 404

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

1 Ответ

3 голосов
/ 07 июня 2019

Я что-то пробовал, Может быть, это вам поможет,

$? - это команда 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

...