我需要将文件下载到 /tmp/cron_test/。我的 wget 代码是
wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/
那么是否有一些参数来指定目录?
-i
或 --input-files
,他们很有可能想要使用 -x
,以强制将其下载到与每个 URL 模式匹配的相应本地目录。
从手册页:
-P prefix
--directory-prefix=prefix
Set directory prefix to prefix. The directory prefix is the
directory where all other files and sub-directories will be
saved to, i.e. the top of the retrieval tree. The default
is . (the current directory).
因此,您需要在命令中添加 -P /tmp/cron_test/
(短格式)或 --directory-prefix=/tmp/cron_test/
(长格式)。另请注意,如果该目录不存在,它将被创建。
-O
是指定要下载到的文件路径的选项:
wget <uri> -O /path/to/file.ext
-P
是前缀,它将下载目录中的文件:
wget <uri> -P /path/to/folder
/path/to/folder/
出现
-O
,但让我更有信心 -P
是我需要的。
-O
覆盖 -P
,因此您不能只指定输出目录(想想 dirname
和 只输出文件名(想想 basename
)。为此,只需 -O
指定完整的文件路径。
确保您下载的任何内容的 URL 都是正确的。首先,带有 ?
等字符的 URL 无法解析和解析。这将混淆 cmd 行并接受任何未解析为源 URL 名称的字符作为您正在下载的文件名。
例如:
wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect"
将下载到名为 ?source=typ_redirect
的文件中。
如您所见,了解有关 URL 的一两件事有助于理解 wget
。
我正在从一个租用磁盘启动,并且只有 Linux 2.6.1 作为资源(import os 不可用)。解决我将 ISO 下载到物理硬盘驱动器上的问题的正确语法是:
wget "(source url)" -O (directory where HD was mounted)/isofile.iso"
可以通过查找 wget
下载到名为 index.html
的文件(默认文件)的时间点来确定正确的 URL,并且具有您需要的文件的正确大小/其他属性,由以下命令显示:
wget "(source url)"
一旦该 URL 和源文件正确并且正在下载到 index.html
,您可以停止下载 (ctrl + z) 并使用以下命令更改输出文件:
-O "<specified download directory>/filename.extension"
在源网址之后。
在我的情况下,这会导致下载 ISO 并将其作为二进制文件存储在 isofile.iso
下,希望能够挂载。
“-P”是正确的选项,请继续阅读以获取更多相关信息:
wget -nd -np -P /dest/dir --recursive http://url/dir1/dir2
为方便起见,手册页中的相关片段:
-P prefix
--directory-prefix=prefix
Set directory prefix to prefix. The directory prefix is the directory where all other files and subdirectories will be saved to, i.e. the top of the retrieval tree. The default is . (the current directory).
-nd
--no-directories
Do not create a hierarchy of directories when retrieving recursively. With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
filenames will get extensions .n).
-np
--no-parent
Do not ever ascend to the parent directory when retrieving recursively. This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.
man wget: -O 文件 --output-document=file
wget "url" -O /tmp/cron_test/<file>
--no-host-directories
或-nH
删除根文件夹-P
选项对我不起作用(在 18.04 上),至少对于-O
选项不起作用。还有其他需要注意的细节吗?