Faz um tempo que eu uso o seguinte comando para tocar um diretório usando o mplayer
mplayer -playlist <( find caminho/da/pasta -type f -iname "*.mp3" -o -iname "*.ogv" -o -iname "*.wma" | sort -d)
Resolvi criar uma função
mpdir (){
if [ -f /tmp/musiclist.tmp ] ; then
rm /tmp/musiclist.tmp
fi
for directory in "$@"; do
if [ -d "$directory" ] ; then
if [ -d "$(pwd)/$directory" ] ; then
find "$(pwd)/$directory" -type f -iname "*.mp3" -o -iname "*.ogv" -o -iname "*.wma" | sort -d >> /tmp/musiclist.tmp
else
find "$directory" -type f -iname "*.mp3" -o -iname "*.ogv" -o -iname "*.wma" | sort -d >> /tmp/musiclist.tmp
fi
fi
done
if [ -s /tmp/musiclist.tmp ] ; then
mplayer -playlist <(cat /tmp/musiclist.tmp)
fi
}
Dessa forma ele está localizando múltiplos diretórios (absolutos: ~/musicas, /home/irtigor/, etc) e subdiretórios (se estou no ~ posso digitar só musicas), mas ele não toca ../musicas por exemplo, existe um maneira melhor de lidar com esses caminhos relativos?