同时使用wget的output-document和directory-prefix选项失败问题咨询
wget命令同时使用--output-document和--directory-prefix失效的原因
核心限制
wget的这两个参数组合使用时,有个硬性要求:--directory-prefix指定的目标目录必须预先手动创建,wget本身不会自动生成该目录。
当你同时用--output-document=Node.png和--directory-prefix="public/images"时,wget会尝试直接把文件写入public/images/Node.png路径,但如果public/images目录不存在,系统会返回“找不到指定路径”的错误,直接导致命令失败。
单独使用正常的原因
- 单独用
--output-document时,默认在当前工作目录写入文件,而当前目录肯定是已存在的,不需要创建新目录,因此能正常运行。 - 单独用
--directory-prefix时,要么你是在目录已存在的场景下测试的,要么wget使用远程文件的默认名称保存,但本质上依然要求目标目录必须预先存在(wget不会自动创建)。
和curl的差异
curl的--create-dirs参数专门负责自动生成目标目录层级,配合--output-dir使用时,会先检查目录是否存在,不存在就自动创建所有需要的父目录,之后再写入文件,所以即使没提前建文件夹也能正常工作。
内容的提问来源于stack exchange,提问作者StackHeap
相关产品推荐
相关产品推荐

