stdoutとstderrを一緒にリダイレクトし、stdoutをリダイレクトしてからstderrをstdoutを含むファイルにリダイレクトする

stdoutとstderrを一緒にリダイレクトし、stdoutをリダイレクトしてからstderrをstdoutを含むファイルにリダイレクトする

このリダイレクトの違いは何ですか?

some-program &> some_file

これ?

some-program > some_file 2>&1

ベストアンサー1

InbashzshShellには2つの間に違いはありません。リダイレクトは&>filePOSIX標準の拡張として実装された構文砂糖であり、その意味は標準とまったく同じです>file 2>&1

非インタプリタによって実行されるスクリプトでリダイレクトを使用すると、スクリプトが興味深い&>方法で中断される可能性があります。とは互いに独立して解釈されるからです。bashzsh&>

some_command &>file

-bash/ 以外のスクリプトでは、zsh次のように結合されます。

some_command & >file

そして

some_command &
>file

これはsome_commandバックグラウンドジョブから始まり、名前付きファイルを切り捨てたり作成しますfile

また関連:

おすすめ記事