tente:
cd ~/music
find . -type f | while read i; do album=${i/*\//}; temp=${i/.\//}; artiste=${temp/\/*\/*/}; song=${i/.\/*\/*\//}; mkdir ~/music/$artiste"-"$album; mv $i ~/music/$artiste"-"$album/$song; done
embora eu recomende usar cp primeiro em vez de mv. apenas no caso ... este script não remove as pastas antigas também.
basicamente, lê o nome do caminho completo de cada arquivo. depois extraia os bits como nome do artista, título da música e título do álbum. Em seguida, ele manipula essas informações para fornecer o estilo de diretório desejado.