stderr と stdout を別のファイル記述子にリダイレクトする

stderr と stdout を別のファイル記述子にリダイレクトする

exec 6>&1ファイル記述子 1 を 6 にコピーします。

しかし、stderr と stdout (1 と 2) の両方をファイル記述子 6 にコピーするにはどうすればよいでしょうか?

答え1

stdout を 6 にリダイレクトし、stderr を stdout にリダイレクトします (これにより、さらに 6 にリダイレクトされます)。

command >&6 2>&1

答え2

2つのファイル記述子を1つにリダイレクトすることはできないと思いますが、1つのファイルを指す2つのファイル記述子を使用することはできます。

exec 1>./all.txt
exec 2>./all.txt

答え3

次を試してください:

command &>&6

&>filename  
    # Redirect both stdout and stderr to file "filename."  
    # This operator is now functional, as of Bash 4, final release.  
M>&N  
    # "M" is a file descriptor, which defaults to 1, if not set.  
    # "N" is another file descriptor.  

関連情報