好的,所以我需要运行 wget,但禁止我在需要运行 wget 的位置创建“点”文件。所以我的问题是'我可以让 wget 使用我可以指定的 .listing 以外的名称吗'。
进一步说明:这是将 ftp 文件夹与本地文件夹同步/镜像,因此使用 -O 选项并不是很有用,因为我要求所有文件都保持格式。
您可以使用该-O
选项来设置输出文件名,如下所示:
wget -O file http://stackoverflow.com
您还可以使用wget --help
获取完整的选项列表。
对于后来出现并且对错误问题的答案感到惊讶的人,这里是以下评论之一的副本:
@FelixD,是的,不幸的是误解了这个问题。查看 wget 版本 1.19(2017 年 2 月)的代码,特别是 ftp.c,似乎 .listing 文件在宏中是硬编码的
LIST_FILENAME
,并且无法覆盖。镜像 ftp 站点可能有更好的选择 - 也许看看 lftp 及其镜像命令,还包括并行下载:lftp.yar.ru
@Paul:您可以使用 spong 指定的 -O 选项
不,你不能这样做。
wget/src/ftp.c
/* File where the "ls -al" listing will be saved. */
#ifdef MSDOS
#define LIST_FILENAME "_listing"
#else
#define LIST_FILENAME ".listing"
#endif
我有同样的问题;wget 似乎将.listing
文件保存在调用 wget 的当前目录中,无论-O path/outpout_file
作为一个丑陋/绝望的解决方案,我们可以尝试从随机目录运行 wget:
cd /temp/random_1; wget ftp://example.com/ -O /full/save_path/to_file_1.txt
cd /temp/random_2; wget ftp://example.com/ -O /full/save_path/to_file_2.txt
注意:手册说使用该--no-remove-listing
选项将导致它创建.listing.1
, 。listing.2
等,因此这可能是避免冲突的一种选择。
注意:如果 ftp 登录失败,则根本不会创建 .listing 文件。