我總是用來wget -c
下載一個文件,該文件可以透過在需要時從最後一個下載位置附加來下載。
下載一個檔案30%
。然後在網路佔用後,它開始在文件末尾附加一些垃圾,直到40%
。 (由於檔案伺服器的邏輯而添加了垃圾,以便在之後提供垃圾資料30mins
)。
現在,我有了一個新的 url 位置,其中包含一些新的令牌,可用於30mins
相同檔案的下一個。如何繼續下載相同文件但從30%
以後開始下載?
或者有什麼應用程式可以做到這一點?
前任:
$ wget -c http://xyz.com/file.txt?token=1
30% [=============> ]
40% [=================> ] (10%junk added)
^C - cancelled
$ wget -c http://xyz.com/file.txt?token=2 --from='30%'
31% [+++++++++++++=> ]
注意:- --from='30%'
僅作為範例是否可以完成。沒有任何類似的論點存在於wget
答案1
wget -c / --continue
始終繼續使用給定的檔案大小,但您可以更改:
用於truncate
將檔案縮小回原始30%
大小(您必須以位元組或千位元組為單位指定大小)。或者您可以使用head -c SIZE file > file_30pc
,它不會觸及原始文件(但您必須重命名它)。
正如 BlueManCZ 所建議的,您可能需要使用它-O output-file
來確保它是同一個檔案。
筆記:使用--start-pos
而不是-c/--continue
指定最後一個好位置將不是工作,而是從該位置開始創建一個新文件,它不會附加現有文件(如果您指定,它甚至會覆蓋-O
)。
答案2
如果您需要繼續從另一個 URL 下載相同的檔案(或重新命名的檔案),則必須在命令中指定檔案的名稱。
wget -c -O myfilename https://examle.net/file1.txt
[will be stoped in 30%]
wget -c -O myfilename https://another_url.net/file2.txt
[will start on 30% of previous file]
[file1.txt and file2.txt must be same]
但我不知道這是否能完全解決您的問題。
答案3
您可以嘗試另一個名為 aria2 的很棒的 Linux 工具,您需要執行以下操作才能恢復下載
aria2c -c -m 0 -o "myfile.zip" "http://example.com/file.zip"
這裡 -c 告訴繼續之前的下載 -m 告訴無限次重試下載 -o 告訴輸出文件
試試 aria2 是 Linux 上最好的下載器之一