
假設您在 Linux 系統上使用 Transmission-gtk BitTorrent 用戶端 (v2.94) 來播種某些文件,例如 Linux 發行版 ISO 和 LibreOffice 版本。假設基本的「保存到位置」是:/path1/torrents
且不完整的種子路徑是/path1/torrents/incomplete
。
現在假設您關閉 Transmission-gtk,並將其重新命名/path1
為/path2
(並且不將舊路徑符號連結到新路徑)。
使用應用程式的配置對話框或在$HOME/.config/transmission
.然而,當人們這樣做時,所有以前活躍的種子現在都被標記為紅色,並且數據可能會丟失。
應該如何修正現有種子的位置(完整和不完整)?並且 - 這可以以某種方式自動化,以便可以從命令列完成(例如在 中的文件上$HOME/.config/transmission/resume
)?
答案1
右鍵單擊 torrent,單擊“設定位置”並選擇新的父目錄(/path2/torrents
在本例中)。如果所有種子都移動到同一目錄,您可以同時對所有種子執行此操作。
更新位置後,再次右鍵單擊並選擇“驗證本機資料”,讓 Transmission 重新檢查哪些檔案/部分已下載。
這可以透過 CLI 自動執行 - 但首先啟用 Transmission 中的「Web UI」功能,該功能還允許您使用transmission-remote
.
對於每個 torrent,transmission-remote --find
使用新的父目錄運行。
~/.config/transmission/resume/ 中的檔案與 .torrent 檔案本身採用相同的「Bencode」格式,它們可能可以使用 Perl 的 Convert::Bencode 或非常小心的 sed'ing 進行修改,但我不確定我是否會推薦該方法。
您想要更新頂級字典中的“目的地”項目:
$ bencode2json < 16a3968b347a81845384394e7f1b38656aeee97a.resume | head
{
"activity-date": "1619012434",
"added-date": "1619011497",
"bandwidth-priority": "0",
"corrupt": "0",
"destination": "/home/xxx/Downloads",
"dnd": [
...
(如果您使用直接二進位編輯,請注意 Bencoded 字串以其長度為前綴,也需要更新,例如19:/home/xxx/Downloads
在本例中。)
答案2
@user1686 的精彩答案的補充:您可以立即更新所有種子的位置:
- 選擇“全部”並在“顯示:”欄中選擇“全部”(以便所有種子都可見)。
- 按 Ctrl+A 選擇所有可見的種子。
- 右鍵單擊任何選定的種子。
- 選擇“設定位置”。
- 選擇“其他”。
- 導航到種子的新資料夾(在您的例子中為“/path2/torrents”)。
- 選擇“本地資料已存在”。
- 按一下“應用”。
- 稍等片刻,種子就會更新。
- 當對話方塊消失後,重新啟動 Transmission-gtk。
您的種子檔案都應該被認為是可恢復的。不過,您仍然需要實際恢復它們 - 如果找不到數據,它們會自動暫停。