Опция -nd
в вашей команде означает без каталогов.
Вы должны удалить параметр -nd
из своей команды, и вы получите ту же структуру, что и на веб-сайте:
wget -r -l 10 -e robots=off http://biomet.ucdavis.edu/Evapotranspiration/
2.6 Параметры каталога
'- nd' '--no-directories'
Не создавать иерархию каталогов при рекурсивном извлечении. Если эта опция включена, все файлы будут сохраняться в текущем каталог, без затирания (если имя появляется более одного раза, имена файлов получат расширения ‘.n’).
Альтернативное решение с использованием find
с -path
:
$ find /level1 -type f -path "/level1/user??/dir02/*.oz" -print
Это напечатает пути всех обычных файлов, чей (полный) путь соответствует /level1/user? ?/dir02/*.oz
.
Если вы знаете, что файлы находятся в каталоге dir02
(а не в его подкаталоге), тогда они будут перечислены:
printf '%s\n' /level1/user??/dir02/*.oz
Если вы хотите указать несколько каталогов в первом аргументе, это зависит только от вашей оболочки. Итак, в bash и zsh и подобных (csh и tcsh? ), вы бы просто использовали шарообразную оболочку. Оболочка расширяет этот глобус на несколько интересующих вас каталогов и передает их в find
, который может принимать несколько аргументов.
find /level1/*/dir02 -name "*.oz"
Несколько дополнительных пунктов:
/level1/[a-z]*[0-9]*/dir02
. Обратите внимание на *
с. -path
, см. man find
, но это более запутанно, чем просто использование глобусов оболочки.