Расширение фигурной скобки происходит очень удобное при создании больших структур каталогов:
mkdir -p dir1/{subdir1,subdir2}/{subsubdir1,subsubdir2}
Это даст Вам
find dir1 -type d
dir1
dir1/subdir1
dir1/subdir1/subsubdir1
dir1/subdir1/subsubdir2
dir1/subdir2
dir1/subdir2/subsubdir1
dir1/subdir2/subsubdir2
Вы могли даже пойти один шаг вперед и поместить расширение фигурной скобки в расширение фигурной скобки:
mkdir -p dir1/{subdir{1,2}}/{subsubdir{1,2}}
Это даст Вам ту же структуру каталогов как пример выше.
При сценариях загрузок необходимо рассмотреть использование curl
вместо этого. Wget может проанализировать вывод и рекурсивно выбрать целые сайты, но завихрение имеет путь больше опций, касающихся фактической загрузки определенного файла. Вот соответствующая опция в странице справочника:
- макс. размер файла
Укажите максимальный размер (в байтах) файла для загрузки. Если файл, который требуют, будет больше, чем это значение, то передача не запустится, и завихрение возвратится с кодом выхода 63.
Примечание: Размер файла не всегда известен до загрузки, и для таких файлов эта опция не имеет никакого эффекта, даже если передача файлов заканчивает тем, что была больше, чем этот данный предел.
Примечание об этой единственной работе для некоторых файлов достойно рассмотрения. Клиент зависит от сервера, чтобы сообщить, как большой файл будет, прежде чем он начнет загружать. Большинство, но конечно не все серверы сообщает об этом.
Если Вы хотите использовать wget, вот способ протестировать размер файла без загрузки:
wget --spider $URL 2>&1 | awk '/Length/ {print $2}'
где $URL
URL файла, который Вы хотите загрузить, конечно.
Таким образом, можно обусловить сценарий на основе вывода. такой как:
{ [ $(wget --spider $URL 2>&1 | awk '/Length/ {print $2}') -lt 20971520 ] && wget $URL; } || echo file to big
для ограничения размера загрузки к 20 МБ.
(код ужасен только для информационных целей).
Кажется, нет никакого разумного способа установить макс. размер файла с wget.
ulimit
(см. bash(1)
, setrlimit(2)
) будет также работать с wget(1)
, хотя это немного властно.
– sarnold
11.07.2011, 03:01
wget имеет опцию -Q
--quota
, которая ограничивает максимальный объем загрузки, когда задано несколько рекурсивных URL-адресов (или списка ввода ).
https://www.gnu.org/software/wget/manual/html_node/Download-Options.html
Да, есть разумный способ установить максимальный размер файла с помощью wget, вопрос достаточен. Итак, по этой ссылке есть отличный патч для wget и уже скомпилированный wget. Я использовал его по разумной причине, которая у меня была, и это сработало так хорошо. Я бы хотел, чтобы они добавили это в wget в репозиторий Linux.
https://yurichev.com/wget.html
Удачи.
$n
байты:(ulimit -f $(($n/512)); curl --max-filesize $n …)
.curl
прервется с ошибкой, если размер файла перейдет$n/512
512-байтовые блоки. – Gilles 'SO- stop being evil' 11.07.2011, 00:22