LINUX.ORG.RU

pwd && find && lltag или рекурсивное переименование аудиофайлов по шаблону из тегов.


0

0

на ночь глядя запощу...

$ pwd
/mnt/media/lossless/Beto Vazquez
$ for ADDRESS in $(pwd); do find "${ADDRESS}" -type d | while read FILE ; do cd "${FILE}" && lltag --rename '%n - %t' *.flac --yes; done; done
find: `/mnt/media/lossless/Beto': Нет такого файла или каталога
find: `Vazquez': Нет такого файла или каталога

где косяк?

lltag --rename '%n - %t' *.flac --yes

- так и должно быть

★★★★★

>find: `/mnt/media/lossless/Beto': Нет такого файла или каталога

косяк в том, что у тебя каталог в названии имеет пробел.

1. $(pwd) не нужен - просто ставь "."
2.соответственно, первый цикл for тоже не нужен, т.к. всегда будет выполняться 1 раз .
3. цикл while тоже не нужен - делай сразу все в файнде

т.е. получатеся такое:

find ./ -type d -exec «cd ${FILE} && lltag --rename '%n - %t' *.flac --yes » \;

dreamer ★★★★★
()
Ответ на: комментарий от dreamer

такой вариант не прокатывает, т.к. следующее выполнение cd ${FILE} будет не из ./, а из ./directory/. проверено. переименовывание происходит только в первой директории.

leg0las ★★★★★
() автор топика

нужна именно такая конструкция, т.к. lltag коряво выполняется с ключем -R: все переименованые файлы помещаются в ту директорию, откуда было запущено lltag, т.е. если была запущена /band/, то и _все_ файлы получаются в /band/ а не /band/<year> <album>/

leg0las ★★★★★
() автор топика

эммм.. я такую штуку с помощью easytag за пару минут сделал.

isden ★★★★★
()
Ответ на: комментарий от leg0las

ничего не понял но не одобряю

#!/bin/zsh

lltag --rename '%n - %t' **/*.flac --yes

zolden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.