zshのMULTIOS

パイプやリダイレクトのことを調べていて、zshにちょっとはまった。

$ ps h $$
31198 pts/5    Ss     0:03 -zsh
$ ls -ld . .. x | cat -n 
ls: cannot access x: そのようなファイルやディレクトリはありません
     1  drwxr-xr-x  2 akira akira   4096 2009-02-28 09:19 .
     2  drwxrwxrwt 75 root  root  360448 2009-02-28 13:13 ..
$ ls -ld . .. x 2>&1 | cat -n
     1  ls: cannot access x: そのようなファイルやディレクトリはありません
     2  drwxr-xr-x  2 akira akira   4096 2009-02-28 09:19 .
     3  drwxrwxrwt 75 root  root  360448 2009-02-28 13:13 ..

ここまでは予想通り。

$ ls -ld . .. x 1>&2 | cat -n 
ls: cannot access x: そのようなファイルやディレクトリはありません
drwxr-xr-x  2 akira akira   4096 2009-02-28 09:19 .
drwxrwxrwt 75 root  root  360448 2009-02-28 13:13 ..
     1  drwxr-xr-x  2 akira akira   4096 2009-02-28 09:19 .
     2  drwxrwxrwt 75 root  root  360448 2009-02-28 13:13 ..

え。

$ setopt nomultios              
$ ls -ld . .. x 1>&2 | cat -n
ls: cannot access x: そのようなファイルやディレクトリはありません
drwxr-xr-x  2 akira akira   4096 2009-02-28 09:19 .
drwxrwxrwt 75 root  root  360448 2009-02-28 13:13 ..
$ setopt multios             
$ ls -ld . .. x 1>&2 | cat -n
ls: cannot access x: そのようなファイルやディレクトリはありません
drwxr-xr-x  2 akira akira   4096 2009-02-28 09:19 .
drwxrwxrwt 75 root  root  360448 2009-02-28 13:13 ..
     1  drwxr-xr-x  2 akira akira   4096 2009-02-28 09:19 .
     2  drwxrwxrwt 75 root  root  360448 2009-02-28 13:13 ..

参考: 漢のzsh(7) ひと味違うzshのリダイレクト