>> sox /shared/music/albums/albumName/song.ogg ~/mp3/albumName/song.mp3 > [...] > cd /shared/music/albums > find . -name \*.ogg -print -exec sox {} {}.mp3 \; > > This will take any file under /shared/music/albums and create an mp3 > file with the same name plus a .mp3 extension. > [...] To change the extension, you could use sed. find . -name "*.ogg" | while read filename; do \ sox "$filename" "`echo $filename | sed -e 's/\.ogg$/.mp3'`" \ done To explain this: the output of find will be feeded, line by line, to the expression inside the while loop, setting the value of filename to each line. The expression inside the ` ` will be evaluated first - it's result is the value of $filename parsed by the regular expression that replaces .ogg at the end of the line (end-of-line is represented by the $ after ogg) with mp3. Also note the use of "*" instead of \*, which I guess is a matter of taste. Adding another | sed, you could easily substitute the folder as well. If you are not familiar with command-line scripting, this might all seem a bit complicated, but once you get used to it, you'll see it's really straightforward. And extremely powerful. maarten