Subject: Re: cat(1) question: multiple "-"s
To: Hubert Feyrer <>
From: Simon Burge <>
List: netbsd-users
Date: 04/19/2006 11:02:16
Hubert Feyrer wrote:

> >From cat(1):
>       The cat utility reads files sequentially, writing them to the standard
>       output.  The file operands are processed in command line order.  A single
>       dash represents the standard input, and may appear multiple times in the
>       file list.
> What sense do multiple appearances of '-' make on the cat command line,
> how is that supposed to work?

SUSv3 talks about this a little, saying that it really only makes sense
for when standard input is a terminal:

     The command:

	cat start - middle - end > file

     when standard input is a terminal, gets two arbitrary pieces of
     input from the terminal with a single invocation of cat. Note,
     however, that if standard input is a regular file, this would be
     equivalent to the command:

	cat start - middle /dev/null end > file

     because the entire contents of the file would be consumed by cat
     the first time '-' was used as a file operand and an end-of-file
     condition would be detected immediately when '-' was referenced the
     second time.

I'll leave the zsh part of the discussion well alone :-)

Simon Burge                            <>
NetBSD Support and Service: