Я использую трансмиссионный демон. Это переменные среды завершения торрента, поддерживаемые демоном передачи, как показано здесь. В каталоге завершенной загрузки найдите и скопируйте любые файлы размером более 1024 МБ в другой каталог.

Это не работает:

find $TR_TORRENT_DIR/$TR_TORRENT_NAME -type f -size +1024M -exec cp {} /path/to/copies/ \;

Это работает, но использует каталог для всех завершенных торрентов:

find $TR_TORRENT_DIR -type f -size +1024M -exec cp {} /path/to/copies/ \;

Это работает, и копирует родительский каталог завершенного торрента:

cp -R "$TR_TORRENT_DIR/$TR_TORRENT_NAME" "/path/to/copies/"

Любая помощь будет принята с благодарностью!

3 ответа3

0

Может быть:

cd "$TR_TORRENT_DIR" && cp -R "$TR_TORRENT_NAME" "/path/to/copies/"
0
find "$TR_TORRENT_DIR/$TR_TORRENT_NAME" -type f -size +1024M -exec cp {} /path/to/copies/ \;
0
  1. Вы хотите скопировать готовые торренты на новое место
  2. У вас есть каталог ($ TR_TORRENT_DIR), куда идут все загруженные торренты. В каталоге каждый новый торрент имеет собственный каталог ($ TR_TORRENT_NAME).

Учитывая эти предположения, сделайте

find $TR_TORRENT_DIR

искать во всех папках, а не только в одной.

Обновление: Найти файлы 1G и больше, получить путь к файлу, скопировать весь родительский каталог файла в место назначения.

Это может выглядеть примерно так: Может быть улучшено, чтобы определить, находятся ли два или более файлов в подкаталогах одного и того же родительского каталога, и скопировать их только один раз.

find $TR_TORRENT_DIR/ -type f -size +1024M -exec echo {} \; \
| while read filepath
do
    parentdir=$(dirname $filepath)
    cp -a $parentdir /path/to/copies/
done

Обратите внимание, что вышеприведенное может сломаться, если имена файлов содержат экзотические символы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .