Вы уже используете опцию -R
для отклонения имен файлов с определенным шаблоном (вы говорите -R "index.html*"
, чтобы отклонить любое имя файла, начинающееся с index.html
), поэтому вы можете просто добавить больше имен файлов в этот список отклонения, т. е. использовать -R "index.html*,1.pdf,2.pdf"
, если вы знаете, что у вас уже есть 1.pdf
и 2.pdf
сохранены на другом компьютере, и вас не беспокоят файлы в других каталогах с одинаковыми именами. (Я не уверен, что понимаю, почему вы отклоняете index.html*
, так как это может привести к тому, что некоторые списки файлов не будут сканироваться.)
В более сложных ситуациях (или если вы просто не хотите писать очень длинный параметр -R
), может быть проще создать пустые файлы с помощью touch
перед запуском wget, а затем удалить пустые файлы. Это работает, потому что вы используете wget -m
, который (по крайней мере, в версиях wget после 2001 или около того) включает -N
(проверку временных меток) — пока сервер поддерживает временные метки (большинство поддерживает), wget сообщит серверу, что он хочет файл только если он новее временной метки существующего файла, т. е. "новее, чем только что", если вы только что поместили туда пустой файл. Однако пустой файл должен быть правильно назван и находиться в правильном каталоге.
Еще одна корректировка, которую вы, возможно, захотите сделать, это заменить -m
на -r -nc -l inf
(поскольку обычно -m
означает -r -N -l inf
, и я предлагаю заменить -N
на -nc
). В то время как -N
проверяет временные метки, -nc
избегает загрузки любого файла, который уже существует, независимо от временной метки (поэтому он работает, даже если сервер не поддерживает временные метки), но, что более важно, -nc
приводит к файлам, уже загружены, сканируются на наличие ссылок, а -N
нет. Это полезно в сочетании с -w
(--wait
), если вам нужно медленно зеркалировать большой сервер, потому что если вам нужно перезагрузить компьютер или что-то еще, прежде чем он завершено, вы можете возобновить зеркальное отображение с того места, где оно было остановлено, и wget
по-прежнему будет учитывать любые ссылки из файлов, которые были загружены в прошлый раз.
С другой стороны, -N
лучше, если ваша предыдущая загрузка была завершена и вам просто нужно проверить наличие обновлений, хотя зеркалирование с помощью -N
по-прежнему зависит от любого обновленного файла, связанного со страницей, которая также имеет обновленную временную метку. (и если эта страница открывается по ссылке, а не напрямую по указанному вами URL-адресу, то по крайней мере одна из ее ссылающихся страниц должна также > иметь обновленную временную метку, чтобы его обновление было замечено, и т. д.) — в настоящее время не существует способа указать wget анализировать HTML-страницы, пропущенные -N
, поскольку он может анализировать HTML-страницы, пропущенные -nc
.
18.06.2020