作成日: 2025年7月15日
WindowsのバッチファイルとLinuxのシェルスクリプトでは、リダイレクト構文が異なります。
本記事では、標準出力(stdout)と標準エラー出力(stderr)の制御方法を比較形式で解説します。
名前 | 略称 | ファイル記述子 | 役割 |
---|---|---|---|
標準出力 | stdout | 1 | 正常系の出力 |
標準エラー出力 | stderr | 2 | 異常系の出力 |
command > out.txt :: stdout をファイルへ
command 2> err.txt :: stderr をファイルへ
command > out.txt 2> err.txt:: 両方を別ファイルへ
command >nul 2>nul :: 両方を破棄
command >nul 2>&1 :: stderr を stdout に結合し捨てる
command > out.txt # stdout をファイルへ
command 2> err.txt # stderr をファイルへ
command > out.txt 2> err.txt# 両方を別ファイルへ
command &> out.txt # 両方を同じファイルへ(bash専用)
command >/dev/null 2>&1 # 両方を破棄
操作内容 | Windows(cmd) | Linux(bash) |
---|---|---|
stdout をファイルへ | > out.txt | > out.txt |
stderr をファイルへ | 2> err.txt | 2> err.txt |
両方を別ファイルへ | > out.txt 2> err.txt | > out.txt 2> err.txt |
両方を同じファイルへ | > all.txt 2>&1 | &> all.txt |
両方を破棄 | >nul 2>nul | >/dev/null 2>&1 |