LinuxForum.Fans
Тема

[Решено] Импорт torrent-файлов из Flush

Автор: D_Chu 7 сообщений 1562 просмотров
#273711

Имеется торрент-клиент Flush
Все активные torrent-файлы хранятся в отдельных папках и имеют при этом одинаковое имя ~/.flush/torrents/очень_длинное_имя_папки/torrent.torrent
Подскажите, пожалуйста, как все эти файлы скопировать в отдельное место в виде очень_длинное_имя_папки.torrent или просто случайное_число.torrent
Главное, чтобы все torrent-файлы были в одной папке и с разными именами.

#273737

cd ~/.flush/torrents/ && find ./ -iname '*.torrent' -type f | sed -r 's!^.*/?(.+)/.+\.torrent$!mv "\&" "/dest/folder/\1.torrent"!'
если всё понравилось, то в конец sed-скрипта допиши e.
[не тестил]

#273742

Fat-Zer, не работает :(

#273841
text

alexander@goblin /tmp $ mkdir test
alexander@goblin /tmp $ cd test
alexander@goblin /tmp/test $ mkdir {1..8}
alexander@goblin /tmp/test $ touch {1..8}/torrent.torrent
alexander@goblin /tmp/test $ mkdir ../dest
alexander@goblin /tmp/test $ tree
.
├── 1
│   └── torrent.torrent
├── 2
│   └── torrent.torrent
├── 3
│   └── torrent.torrent
├── 4
│   └── torrent.torrent
├── 5
│   └── torrent.torrent
├── 6
│   └── torrent.torrent
├── 7
│   └── torrent.torrent
└── 8
    └── torrent.torrent

8 directories, 8 files alexander@goblin /tmp/test $ find ./ -iname '*.torrent' -type f | sed -r 's!^.*/?(.+)/.+\.torrent$!mv "&" "/tmp/dest/\1.torrent"!' mv "./8/torrent.torrent" "/tmp/dest/8.torrent" mv "./7/torrent.torrent" "/tmp/dest/7.torrent" mv "./6/torrent.torrent" "/tmp/dest/6.torrent" mv "./5/torrent.torrent" "/tmp/dest/5.torrent" mv "./4/torrent.torrent" "/tmp/dest/4.torrent" mv "./3/torrent.torrent" "/tmp/dest/3.torrent" mv "./2/torrent.torrent" "/tmp/dest/2.torrent" mv "./1/torrent.torrent" "/tmp/dest/1.torrent" alexander@goblin /tmp/test $ find ./ -iname '*.torrent' -type f | sed -r 's!^.*/?(.+)/.+\.torrent$!mv "&" "/tmp/dest/\1.torrent"!e'

alexander@goblin /tmp/test $ ls -al ../dest итого 0 drwxr-xr-x 2 alexander users 200 сент. 6 14:50 . drwxrwxrwt 27 root root 2540 сент. 6 14:49 .. -rw-r--r-- 1 alexander users 0 сент. 6 14:49 1.torrent -rw-r--r-- 1 alexander users 0 сент. 6 14:49 2.torrent -rw-r--r-- 1 alexander users 0 сент. 6 14:49 3.torrent -rw-r--r-- 1 alexander users 0 сент. 6 14:49 4.torrent -rw-r--r-- 1 alexander users 0 сент. 6 14:49 5.torrent -rw-r--r-- 1 alexander users 0 сент. 6 14:49 6.torrent -rw-r--r-- 1 alexander users 0 сент. 6 14:49 7.torrent -rw-r--r-- 1 alexander users 0 сент. 6 14:49 8.torrent

один слеш лишний был...

лучше даже вот так будет:
find ./ -iname 'torrent.torrent' -type f | sed -r 's!^\./(.+)/torrent\.torrent$!cp "&" "/tmp/dest/\1.torrent"!'

#273941

Fat-Zer, вот этот вариант работает

text
find ./ -iname '*.torrent' -type f  | sed -r 's!^.*/?(.+)/.+\.torrent$!mv "&" "/tmp/dest/\1.torrent"!e'

но имена полученных файлов это одна цифра или буква с расширением .torrent
Этот вариант

text
find ./ -iname 'torrent.torrent' -type f  | sed -r 's!^\./(.+)/torrent\.torrent$!cp "&" "/tmp/dest/\1.torrent"!'

дает вывод такого вида

text
cp "./.flush/torrents/cbca8520698d18eed6c9c1857e69875fe4495d81/torrent.torrent" "/data/torrents/.flush/torrents/cbca8520698d18eed6c9c1857e69875fe4495d81.torrent"

но файлов в конечной папке нет. Права на папку в порядке.

#273948
"D_Chu" написал:
но имена полученных файлов это одна цифра или буква с расширением .torrent

ну да... моя ошибка... я там намудрил всякой лабуды...

"D_Chu" написал:
но файлов в конечной папке нет. Права на папку в порядке.
"Fat-Zer" написал:
если всё понравилось, то в конец sed-скрипта допиши e.
#274113
Fat-Zer написал:
лучше даже вот так будет:
find ./ -iname 'torrent.torrent' -type f | sed -r 's!^\./(.+)/torrent\.torrent$!cp "&" "/tmp/dest/\1.torrent"!'
Fat-Zer написал:
если всё понравилось, то в конец sed-скрипта допиши e.

Спасибо, этот вариант работает (с "e" в конце)
Единственное, что пришлось руками создавать папку .flush/torrents/ в папке назначения (пока не создал папку, писало что "cp: невозможно создать обычный файл")

Войдите или зарегистрируйтесь, чтобы ответить.