Я создаю небольшой инструмент, который будет загружать файлы с помощью wget, читая URL-адреса из разных файлов. Тот же URL-адрес может присутствовать в разных файлах; url может даже присутствовать в одном файле несколько раз. Было бы неэффективно загружать страницу несколько раз (каждый раз, когда ее URL-адрес найден в списке (-ах)).
Таким образом, простой подход заключается в сохранении загруженного файла и инструкции wget не загружать его снова, если он уже существует.
Это было бы очень просто; однако URL-адреса очень длинные (многие параметры GET) и поэтому не могут использоваться как таковые для имен файлов (wget дает ошибку "Невозможно записать в... [] имя файла слишком долго" ).
Итак, мне нужно переименовать загруженные файлы. Но для того, чтобы механизм кэширования работал, для схемы переименования необходимо реализовать "одно url <= > одно имя": если данный URL-адрес может иметь несколько имен, кэширование не работает (т.е. Если я просто числю файлы в что они найдены, я не позволю wget определить, какие URL-адреса уже были загружены).
Простейшей схемой переименования будет вычисление хэша md5 имени файла (и не самого файла, что и делает md5sum); что обеспечило бы уникальность имени файла и что данный URL-адрес всегда имеет одно и то же имя.
Это возможно сделать в Perl и т.д., но можно ли это сделать непосредственно в bash или с помощью системной утилиты (RedHat)?