ChatGPT解决这个技术问题 Extra ChatGPT

wget如何指定下载位置?

我需要将文件下载到 /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 模式匹配的相应本地目录。

a
allan.simon

从手册页:

-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/(长格式)。另请注意,如果该目录不存在,它将被创建。


-P /tmp/cron_test/ 不起作用,但删除 / like -P tmp/cron_test/ 可以工作,甚至创建不存在的目录。
Kangaroo 它可能不起作用,因为您的系统上没有 /tmp/cron_test/ :P
该手册的描述使该选项难以搜索。我不认为我想将某些内容保存为“目录前缀”的位置。感谢分享!
此外,您可以按照 serverfault.com/questions/354792/… 通过 --no-host-directories-nH 删除根文件夹
好吧,-P 选项对我不起作用(在 18.04 上),至少对于 -O 选项不起作用。还有其他需要注意的细节吗?
A
Asclepius

-O 是指定要下载到的文件路径的选项:

wget <uri> -O /path/to/file.ext

-P 是前缀,它将下载目录中的文件:

wget <uri> -P /path/to/folder

我会添加一个尾部斜杠以使其 /path/to/folder/ 出现
投票赞成还指定我不需要的 -O,但让我更有信心 -P 是我需要的。
@louisMaddox 根据我机器上的手册页,默认前缀是“。” (即当前目录)向“目录前缀”添加尾部斜杠会导致双斜杠错误(即 my/favorite/dir/prefix//)此外,考虑到语义,“目录前缀”不需要尾部削减。
@TimothyL.J.Stewart 没有双斜杠错误。
注意:-O 覆盖 -P,因此您不能只指定输出目录(想想 dirname 只输出文件名(想想 basename)。为此,只需 -O 指定完整的文件路径。
E
Eje

确保您下载的任何内容的 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
pr-pal

“-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.

m
megamind

man wget: -O 文件 --output-document=file

wget "url" -O /tmp/cron_test/<file>

这不是一个答案,因为 -o 选项将卸载的文件放在指定的文件中。但问题是“如何将文件放入文件夹”。这是重复的存在答案

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅