如果磁盘上已经存在下载文件的文件名,curl 是否有自动更改文件名的选项?
Wget 通过在文件名末尾附加 .1、.2、.3、.4 等来自动执行此操作。
卷曲示例:
$ ls -al
drwx------. 3 user user 219 Sep 6 17:12 .
drwxr-xr-x. 3 user user 21 May 12 18:54 ..
-rw-rw-r--. 1 user user 147415 Sep 6 16:47 image.jpg
$ curl -O https://website/context/path/image.jpg
$ ls -al
drwx------. 3 user user 219 Sep 6 17:12 .
drwxr-xr-x. 3 user user 21 May 12 18:54 ..
-rw-rw-r--. 1 user user 147415 Sep 6 17:35 image.jpg
上面的 curl 命令将覆盖原始图像.jpg。 卷曲中有没有办法使新文件被命名为image.jpg.1
,或者类似的东西,就像在 wget 中一样?
wget 示例:
$ rm image.jpg*
$ wget https://website/context/path/image.jpg
$ ls -al
drwx------. 3 user user 219 Sep 6 17:12 .
drwxr-xr-x. 3 user user 21 May 12 18:54 ..
-rw-rw-r--. 1 user user 147415 Sep 6 17:42 image.jpg
$ wget https://website/context/path/image.jpg
$ wget https://website/context/path/image.jpg
$ wget https://website/context/path/image.jpg
$ ls -al
drwx------. 3 user user 219 Sep 6 17:12 .
drwxr-xr-x. 3 user user 21 May 12 18:54 ..
-rw-rw-r--. 1 user user 147415 Sep 6 17:42 image.jpg
-rw-rw-r--. 1 user user 147415 Sep 6 17:42 image.jpg.1
-rw-rw-r--. 1 user user 147415 Sep 6 17:42 image.jpg.2
-rw-rw-r--. 1 user user 147415 Sep 6 17:42 image.jpg.3
不,curl 没有这样的选择。如果你真的需要它,你通常可以通过在脚本或其他包装程序中自己做检查来解决它。
这个功能在 curl 的 TODO 中被提到是整洁的东西,所以它可能会在未来的某个时间点添加......
--no-clobber
,根据手册页,它是"在(版本(7.83.0 中添加"。