Skip to content

bashのファイルディスクリプタ演算子

シェルとファイルデスクリプタのお話にも解説はあるが、基本は bash(1) が全て。

ファイルディスクリプタの管理

Section titled “ファイルディスクリプタの管理”

/dev/fd に開いているファイルディスクリプタがリストされている。

Terminal window
ls /dev/fd

>file 2>&1 と同じ。&> の方が好ましい。

>>file 2>&1 と同じ。&>> の方が好ましい。

cmd1 の標準出力とエラー出力を cmd2 にパイプする。

cmd を実行して標準入力に string を入力する。

fdn に複製(dup2)する。fd が読み込みモードでオープンされていないファイルディスクリプタならエラーになる。また、n を省略すると stdin が使われる。

fd- の場合は nclose する。

上とだいたい同じだけど、fd が書き込みモードでない場合はエラーになる。n を省略すると stdout が使われる。

fd- の場合は nclose する。

<&fd と似ているが、これは fd を複製したあと fd 自体を閉じる。

>&fd と似ているが、これは fd を複製したあと fd 自体を閉じる。

読み込みモードで n をオープンする。n を省略すると stdin が使われる。

書き込みモードで n をオープンする。file がなければ作られ、内容は消える。n を省略すると stdout が使われる。

追記モードで n をオープンする。file がなければ作られる。n を省略すると stdout が使われる。

読み書きモードで n をオープンする。file がなければ作られる。