Файлы переупорядочивания в Папке

Я имею о 30K песнях в mp3. Я уже организовал/отметил их с Musicbrainz Picard. Но Picard сделал избыток папок и подпапок друг в друге из-за тегов.

В чем я нуждаюсь, теперь сценарий, чтобы считать каждую подпапку и переместить все mp3 файлы в папках подпапки к основной подпапке. Например:

 Music -  
   Offspring -
      Album 1 - 20 songs
      Album 2 - 30 songs
      Album 3 - 5 Songs
         Folder 1 - 2 Songs
         Folder 2 - 3 Songs
   Journey -
      Song Pack 1 - 2 Songs
           Packy 1 - 15 Songs
           Packy 2 - 20 Songs
           Packy 3 - 7 Songs
      Album 2 - 20 songs
      Whatever 3 - 10 Songs

После запущения скрипта они были бы похожи на это:

Music -    
   Offspring - All Songs inside THIS folder. Not inside subfolders of Offspring.  
   Journey - All Songs inside THIS folder. Not inside subfolders of Journey.   

И так далее..

Таким образом, вся музыка для каждой подпапки каждой музыкальной группы не должна больше иметь подпапок, и все песни в их соответствующих подподпапках должны быть перемещены в основную подпапку музыкальной группы.

Таким образом, когда я проверяю Музыку, и я вижу Bee Gees затем, я ЗНАЮ, что все песни тут же и не в некоторой подпапке Bee Gees.

ОТМЕТЬТЕ - В некоторых случаях существует больше чем 20 рекурсивных подпапок. Пример: Music/Lady Gaga/1/Album/Lady Gaga/2/2/2/1/1/1/1/3/3Album 2/Lady Gaga/1/1/1/SONG.mp3. В этом случае я хочу их внутри Music/Lady Gaga и устранить остальную часть папок.

2
задан 28 February 2017 в 23:49

4 ответа

Я предлагаю следующее (протестированный, но без гарантии) сценарий, чтобы быть выполненным из основного каталога, в соответствии с которым живут все каталоги художников:

#!/bin/bash

for f in *; do
  find "$f" -mindepth 2 -type f -exec mv --backup=numbered -t "$f" {} +
done

for f in *; do
  find "$f" -mindepth 1 -type d
done |
  sort -r |
  while read d; do
    rmdir "$d"
  done

Это также заботится о дубликатах и пустом удалении подкаталогов.

3
ответ дан 2 December 2019 в 01:41

Взгляните на Easytag Install easytag.

sudo apt-get install easytag

enter image description here

Параметр сканера (Сканер-> Переименовывают Файлы и Каталог) способен для перестраивания файлов на основе параметров от идентификационного тега.

Пример:

Artist/Track# - track name.ogg`: `%a/%n - %t

привел бы к:
Принц/07 - Фиолетовый Rain.ogg

3
ответ дан 2 December 2019 в 01:41

Если Вы имеете, располагают достаточно с интервалами для резервного копирования музыки, прежде чем Вы сделаете это, Вы могли бы хотеть сделать это. Я протестировал его, но это прибывает без гарантии - если это повреждается, Вы добираетесь для хранения всех частей.

Я сделал это под предположением (перенесенный из Вашего описания), что Вам подразделил основную папку художник, далее подразделенный альбомом. Если это соответствует Вашей установке, продолжить.

В терминале, CD в Ваш музыкальный каталог, и выполненный эта команда (в ударе):

for j in * ; do (cd "$j" ; (for i in * ; do (cd "$i" ; find . -name \*.[mM][pP]3 -exec mv {} . \; ) ; done)) ; done

Если Вы имеете вопросы, просто спрашиваете.

1
ответ дан 2 December 2019 в 01:41

Вы смогли изменять настройки для Picard так, чтобы это не создавало эту иерархию каталогов для начала - tt, возможно, что это несколько полагается на эти файлы, остающиеся, где это оставило их.

0
ответ дан 2 December 2019 в 01:41

Другие вопросы по тегам:

Похожие вопросы: