1

У меня есть список из примерно 200 серверов, которые содержат ссылки на отдельные файлы, для этого вопроса давайте просто представим, что они являются .txt файлами. Мне нужно скачать каждый файл, однако некоторые серверы имеют только сжатую версию, а не оригинальную, а некоторые серверы имеют обе версии, используемое сжатие - bzip2.

Это означает, что сервер может иметь следующие файлы;

foo.txt.bz2
bar.txt
bar.txt.bz2

Я сказал wget загружать только файлы .txt и .txt.bz2, и я использую no-clobber для предотвращения загрузки одного и того же файла с каждого сервера. Однако после загрузки сжатого файла он распаковывается; оригинал сохранен, файлы bz2 нет. Это означает, что wget загружает одни и те же файлы bz2 с каждого отдельного сервера, поскольку локально не имеет сжатой версии.

Как сказать wget не загружать файлы .bz2, если у него уже есть распакованная версия (например, не загружайте foo.txt.bz2, если foo.txt уже существует).

Спасибо

1 ответ1

1

Я бы связал команды wget следующим образом:

wget http://example.com foo.txt || wget http://example.com/foo.txt.bz2 && bzip -d foo.txt.bz2

Команда bzip -d распакует архив, но только в случае успеха wget.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .