Ответ 1
Следующая строка загрузит все файлы в указанную вами директорию.
wget -P /home/test www.xyz.com
Здесь файлы будут загружены в каталог /home/test
Я знаю, что я могу использовать следующие 2 команды для загрузки файла:
curl -O example.com/file.zip
wget example.com/file.zip
Но я хочу, чтобы они вошли в конкретный каталог. Поэтому я могу сделать следующее:
curl -o mydir/file.zip example.com/file.zip
wget -O mydir/file.zip example.com/file.zip
Есть ли способ указать имя файла? Что-то вроде этого:
curl -dir mydir example.com/file.zip
Следующая строка загрузит все файлы в указанную вами директорию.
wget -P /home/test www.xyz.com
Здесь файлы будут загружены в каталог /home/test
Я знаю, что это старый вопрос, но можно сделать то, что вы просите с помощью curl
rm directory/somefile.zip
rmdir directory
mkdir directory
curl --http1.1 http://example.com/somefile.zip --output directory/somefile.zip
сначала, если это было написано сценарием, вам нужно убедиться, что файл, если он уже существует, удаляется, а затем удаляет каталог, а затем завертывает загрузку, иначе завиток завершится с ошибкой файла и каталога.
Самый простой способ - cd
внутри подоболочки
(cd somedir; wget example.com/file.zip)
и вы можете сделать эту функцию оболочки (например, в ~/.bashrc
)
wgetinside() {
( cd $1 ; shift; wget $* )
}
затем введите wgetinside somedir http://example.com/file.zip
Короткий ответ не такой, как curl, и wget автоматически записывает в STDOUT. У него нет возможности встроить файл загрузки в каталог.
-o/--output <file> Write output to <file> instead of stdout (Curl)
-O, --output-document=FILE write documents to FILE. (WGet)
Но поскольку он выводит на STDOUT изначально, он дает вам программные решения, такие как:
i="YOURURL"; f=$(awk -F'/' '{print $NF}' <<< $i);curl $i > ~/$f
Сначала я определяю ваш url (example.com/file.zip) как переменную. F = часть удалила URL-адрес и ушла /file.zip, а затем вы скручиваете этот файл ($ i) в каталог (~) в качестве имени файла.