MPlayer:Recursively Play All Files ================================== :author: Aaron Ball :email: nullspoon@iohq.net I've researched this one before and there doesn't seem to be a real standard for how to do this (such as a -r switch for recursive play). Granted, when in Linux is there a standard for something that doesn't really need to be standardized? In Linux land, there's usually a minimum of several ways to do something right. Figuring out newer and more efficient ways of doing things is fun! That said, I'm going to contribute http://xkcd.com/927/[my way of doing this] to the mix. To do this, we are going to need a magical (ooo, shiny) bash one liner that involves a little http://tldp.org/LDP/abs/html/process-sub.html[process substitution] (ksh, sh, and csh users, sorry. Those shells don't support process substitution). mplayer -playlist <(find /path/to/music -type f -name \*.ogg) [[what-just-happened]] What just happened?! -------------------- What we just did there was perform process redirection. When you run the **find /mnt/music -type...**, a process is started up. What the *<()* around the command does is create a link to the output of the pid at /dev/fd/63. A quick _ls -l_ will show us this. [nullspoon@null music]$ ls -l <(find /path/to/music/ -name \*.ogg) lr-x------ 1 nullspoon nullspoon 64 Jun 14 10:00 /dev/fd/63 -> pipe:[59723] If you want to see the contents of that file, you can simply just run the find command without anything else. If you want to see it in vim like you're editing it, replace _mplayer -playlist_ with __vim__. This will be like running +vim /dev/fd/63+. vim <(find /path/to/music -type f -name \*.ogg) Now, if you realy wanted to get crazy, you could change append to the find command a bit to listen only to music with names that have a 7 in them. mplayer -playlist <(find /path/to/music/ -name \*.ogg | grep 7) ... Or sort our music backwards? mplayer -playlist <(find /path/to/music/ -name \*.ogg | sort -r) ... Or a random sort?! mplayer -playlist <(find /path/to/music/ -name \*.ogg | sort -R) The last one is kind of pointless since mplayer has a *-shuffle* switch. I guess you could combine the two and get _doubly_ shuffled music! I think Chef Elzar would have something to say about that. "BAM!!!" // vim: set syntax=asciidoc: