Как скачать файл в несуществующую директорию с помощью wget?
Я пытаюсь скачать файл, добавить к его имени расширение .safetensors и переместить его в нужную папку (которой до этого может и не существовать).
Я пробовал:
wget -P /content/gdrive/cron_test/ https://civitai.com/api/download/models/43888 --output-document=newfile.safetensors
wget -P /content/gdrive/cron_test/ -O newfile.safetensors https://civitai.com/api/download/models/43888
Ошибки нет, но файл оказывается в /content/newfile.safetensors, а нужно, чтобы он был в /content/gdrive/cron_test/newfile.safetensors.
wget -P /content/gdrive/cron_test/newfile.safetensors https://civitai.com/api/download/models/43888
В итоге получается вот так /content/gdrive/cron_test/newfile.safetensors/43888.
wget -O /content/gdrive/cron_test/newfile.safetensors https://civitai.com/api/download/models/43888
/content/gdrive/cron_test/newfile.safetensors: No such file or directory
mkdir /content/gdrive/cron_test/
wget -O /content/gdrive/cron_test/newfile.safetensors https://civitai.com/api/download/models/43888
/content/gdrive/cron_test/: No such file or directory
Что нужно сделать, чтобы переместить файл в каталог и поменять его расширение?
Ответы (2 шт):
Чтобы создать не одну, а несколько вложенных друг в друга директорий, необходимо использовать команду mkdir c флагом -p (то же, что и флаг --parents).
Например:
mkdir -p a/b/c
Теперь можно скачивать файл в эту директорию при помощи wget с опцией -O (то же самое, что и опция --output-document=):
wget <url> -O a/b/c/newfile.safetensors
Опция -P (она же --directory-prefix=) игнорируется, если задана опция -O, поэтому не нужно их использовать одновременно.
Как оказалось параметр программы wget -x не создает каталоги пользователя, а повторяет вложенность файла с сайта.
Спасибо Vadik Sirekanyan за разъяснение.
От себя предложу вариант с curl хоть его и нет в метках, но рассмотреть возможность реализации с его помощью все же возможно:
Параметры запуска:
- -o, --output FILE - Write output to instead of stdout
- --create-dirs - Create necessary local directory hierarchy
пример строки для запуска:
curl https://civitai.com/api/download/models/43888 -o /content/gdrive/cron_test/newfile.safetensors --create-dirs