web-dev-qa-db-ja.com

存在しない保存パスのwget -O?

保存するパスがまだないのでwgetできません。つまり、wgetは、存在しない保存パスに対しては機能しません。例:

wget -O /path/to/image/new_image.jpg http://www.example.com/old_image.jpg

/path/to/image/は以前は存在していませんでした。常に次を返します:

No such file or directory

パスを自動的に作成して保存するようにするにはどうすればよいですか?

31
夏期劇場

curlをお試しください

curl http://www.site.org/image.jpg --create-dirs -o /path/to/save/images.jpg
53
kev
mkdir -p /path/i/want && wget -O /path/i/want/image.jpg http://www.com/image.jpg
5
Ash

wgetはファイルを取得するだけで、ディレクトリ構造を作成しません(mkdir -p/path/to/image /)。これは自分で行う必要があります。

mkdir -p /path/to/image/ && wget -O /path/to/image/new_image.jpg http://www.example.com/old_image.jpg

パラメータ--force-directoriesを使用して、wgetにディレクトリを作成するように指示できます(そのため、mkdirを使用する必要はありません)。

一緒にこれは

wget --force-directories -O /path/to/image/new_image.jpg http://www.example.com/old_image.jpg
3
K1773R

たくさん検索した後、私はようやくwgetを使用して、存在しないパスをダウンロードする方法を見つけました。

wget -q --show-progress -c -nc -r -nH -i "$1"

=====
Clarification

-q
--quiet --show-progress
  Kill annoying output but keep the progress-bar

-c
--continue
  Resume download if the connection lost

-nc
--no-clobber
  Overwriting file if exists

-r
--recursive
  Download in recursive mode (What topic creator asked for!)

-nH
--no-Host-directories
  Tell wget do not use the domain as a directory (for e.g: https://example.com/what/you/need
   - without this option, it will download to "example.com/what/you/need")

-i
--input-file
  File with URLs need to be download (in case you want to download a lot of URLs,
   otherwise just remove this option)

ハッピーwget-ing!

0
Toan Nguyen