我不能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
我怎样才能让它自动创建路径并保存?
尝试curl
curl http://www.site.org/image.jpg --create-dirs -o /path/to/save/images.jpg
mkdir -p /path/i/want && wget -O /path/i/want/image.jpg http://www.com/image.jpg
要使用 wget 将文件下载到新目录--directory-prefix
中 ,请使用以下命令-O
:
wget --directory-prefix=/new/directory/ http://www.example.com/old_image.jpg
与,-O new_file
一起使用不会创建新的目录结构,而是将新文件保存在当前目录中。如果您指定,它甚至可能会因“没有这样的文件或目录”错误而失败--directory-prefix
-O /new/directory/new_file
如果文件夹不存在,我可以使用以下命令创建文件夹:
wget -N http://www.example.com/old_image.jpg -P /path/to/image
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
您可以使用参数告诉 wget 创建目录(因此您不必使用 mkdir)--force-directories
总而言之,这将是
wget --force-directories -O /path/to/image/new_image.jpg http://www.example.com/old_image.jpg
经过一番搜索,我终于找到了一种用于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)
快乐的工作!