Передача: избавиться от старых не удаленных файлов?

Я использую передачу для скачивания различных торрентов, но время от времени передача не удаляет файл, а удаляет файл торрента.

Это означает, что моя папка загрузки заполнена уже удаленными торрентами, но файлы все еще существуют.

Каков наилучший способ найти, какие файлы в настоящее время не связаны с каким-либо загруженным торрентом и удалить их?

Спасибо за ваше время!

2 Solutions collect form web for “Передача: избавиться от старых не удаленных файлов?”

Вы можете запросить пульт дистанционного управления для списка файлов, о которых он знает. Существует два варианта запроса файлов: --files и --info-files/-if ; который вам нужен, вероятно, зависит от версии, в которой вы работаете:

 $ transmission-remote «host» -N ~/.transmission-netrc -t all --files # or -if musopen-lossless-dvd (4 files): # Done Priority Get Size Name 0: 100% Normal Yes 8.07 GB musopen-lossless-dvd/Musopen-Lossless-DVD.zip ⋮ 

К сожалению, он предназначен для отображения, а не для синтаксического анализа, и, похоже, нет возможности сделать вывод на основе сценариев. Если вы программист, вы можете захватить источник и исправить это или, альтернативно, взломать собственную реализацию в Perl / Python / Ruby / JavaScript / etc. для получения имен файлов. Передача использует документированный, довольно простой протокол JSON-over-HTTP .

Вы также можете попробовать – --move чтобы --move передачу, чтобы переместить все, что он знает в новый каталог.

Это старый вопрос, но я наткнулся на него, пытаясь решить это, и я думаю, что другие могут тоже.

Используя ответ derobert, я написал сценарий bash, чтобы удалить все файлы, которые не перечислены transmission-remote

 #!/bin/bash # get a list of all torrents transmission-remote 2.52 transmission-remote 127.0.0.1 -t all --files > _all_torrents.tmp # all items in this directory for i in * do # is it a file or a directory if test -f "$i" -o -d "$i" then # does it NOT exist in the list of all torrent files #if [[ $all_files != *"$i"* ]] if ! grep -Fq "$i" _all_torrents.tmp then # does it not start with an underscore (my special char for files in directory not related to transmission if [[ "$i" != _* ]] then # delete them echo rm -rf \"$i\" # rm -rf "$i" fi fi fi done # clear tmp file rm _all_torrents.tmp 

Обратите внимание, что строка для фактического удаления файлов закомментирована. Я рекомендую сначала запустить сценарий, чтобы увидеть, что будет удалено, прежде чем делать это. Он также удалит все файлы, не перечисленные в разделе «Передача», например, «Неполный» каталог, если вы храните его в папке с загрузкой.

Я далек от эксперта по сценарию bash, и это довольно медленный скрипт с большим количеством торрентов, поскольку поиск подстроки с помощью этого метода кажется медленным, не стесняйтесь предлагать альтернативы. Я подозреваю, что это может сломаться и с необычными именами файлов.

  • Среднее количество подэлементов
  • Поиск каталогов без музыкальных файлов
  • Как узнать, имеет ли файл CAP_NET_ADMIN?
  • Как создаются файлы Linux / dev?
  • Сравнить строки и обновить два разных файла
  • объединить файлы с пронумерованным индексом
  • Два пользователя с разными разрешениями в одном каталоге
  • gvim -p предел открытых вкладок?
  • Как переименовать файлы с '|' в них?
  • Быстрый инкрементный поиск файлов из оболочки
  • Как получить доступ к содержимому файла, который используется в качестве аргумента при запуске сценария bash?
  • Interesting Posts

    Как удалить повторяющиеся строки, начинающиеся с шаблона и следующей строки после этого?

    Tails OS: синтаксис сетевой фильтрации, позволяющий I2PBrowser прослушивать на localhost: 6666, затем разрешить пользователю TorBrowser подключаться к нему

    AWK: Как поместить поле ($ 1) внутри регулярного выражения, чтобы выбрать все префиксы?

    Почему я не должен использовать 'kill -9' / SIGKILL

    Как удалить список недавно полученных документов в Fedora?

    Autoconfig / Automake не может генерировать AM_CFLAGS & AM_LDFLAGS для зависимой библиотеки D-BUS. Зачем?

    Как удалить элемент из списка?

    Следующие пакеты были сохранены

    CP2102 для последовательной ошибки

    Запустить предыдущую команду с несколькими заменами

    Как хранить 10 случайных чисел в массиве, затем эхо-массив?

    Сценарий, который удаляет нежелательные символы из переменной

    / dev смонтирован как readonly

    Grub не загрузит Arch Linux

    Странная проблема с IO или файловой системой или что?

    Linux и Unix - лучшая ОС в мире.