使用wget指定要下载的文件名而不覆盖

时间:2014-11-01 00:23:50

标签: linux bash unix wget

我已经知道您可以通过-O参数指定使用wget完成的下载的文件名。但是如果文件已经存在,它将被覆盖。如果您没有指定文件名,则wget永远不会覆盖文件,它只会附加.1,.2,.3等。我希望为我指定的文件名提供附加解决方案。这可能吗?

2 个答案:

答案 0 :(得分:2)

这是一个函数,如果需要找到一个尚不存在的文件名,它会附加数字:

newfile () {
    fname=$1
    count=0
    while [ -e "$fname" ]
    do
        fname="$1.$((++count))"
    done
    echo "$fname"
}

样本用法:

$ ls
$ newfile abc
abc
$ touch abc
$ newfile abc
abc.1

使用wget,您可以将其用作:

wget http://example.com/index.html -O "$(newfile something)"

答案 1 :(得分:0)

您是否尝试使用-nc--no-clobber参数?它会跳过覆盖文件的下载?