2012-12-25 44 views
1

我使用下面的命令:如何告訴嫋嫋不覆蓋

$ xargs -n 1 curl -o -O < ../completeresultlist.txt 

哪裏..​​/completeresultlist.txt是我的文件列表我要下載所在。但是,其中一些文件雖然來自不同的目錄,但名稱相同。我想獲得列表中的所有文件,那麼如何避免覆蓋?看起來curl只是在發現重複時覆蓋。

+0

您可以使用wget來代替。它默認會重命名副本。 – aragaer

回答

1

不幸的是,我不認爲這個功能是支持的,但它在to-do list上。另一種選擇是使用wget,它有support不覆蓋文件。

+0

嗯,它看起來像wget這是默認情況下。我正在尋找抑制這種覆蓋的'-nc'選項。 –

+1

wget完美工作。這不完全是一個答案,如何讓curl做到這一點,但我相信它會幫助別人尋找答案。重寫像'文件','file.1'等 –

+0

@MarkLyons很高興聽到你有它的工作。 – Garett

2

我想下面的腳本應該這樣做:

while read url; do 
    if [ ! -e $(basename "$url") ] 
    then curl -O "$url" 
    else echo "Skipping $url because file already exists" # Leave out if you want silence 
    fi 
done < ../completeresultlist.txt 
+0

原諒我,如果我做錯了,但我只是粘貼到終端,它看起來像下載文件,但我在目錄中唯一的東西是一個名爲'-O'的文件 –

+0

已取消'-o'選項,應該修復它。我從這個問題的原始命令中拿出了那個,我認爲那部分工作正常。 – Barmar

相關問題