Take the tour ×  I'm combining sox and lame to generate a new
music file, but in order to do everything on one line using
pipes, it seems necessary to 'mark' the output and input
boundaries with a - character. I've inherited this code, so let
me show.  sox $DIRNAME/$BASENAME -e signed-integer -r 8000 -c 2
-t wav - trim $POSITIONS | lame -v -V4 --resample 8 -
$DIRNAME/${NOEXT}.mp3  The - between wav and trim is the output
file, and the - between --resample 8 and $DIRNAME/${NOEXT}.mp3
is the input file.  I'm trying to find further information on
this, like whether any character can be used, or if - is special
in this way. What is this called, and what makes it work?
share|improve this question add comment  4 Answers  up vote 5
down vote accepted  Many Unix command-line utilities use "-" as
a shorthand to mean "don't use a real file here, use stdin (or
stdout) instead". Sox is one of these programs:  This is from
the sox manpage  SoX can be used in simple pipeline operations
by using the special filename '-' wh