Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. Bash辞典
  3. >(リダイレクト)

>(リダイレクト)

リダイレクト(『>』)は、コマンドの標準出力や標準エラー出力をファイルや別のストリームに転送する機能です。ログの保存やエラーの無視など、スクリプト作成で毎日使う基本機能です。

構文
コマンド > ファイル       # 標準出力をファイルに上書き
コマンド >> ファイル      # 標準出力をファイルに追記
コマンド 2> ファイル      # 標準エラーをファイルに上書き
コマンド 2>> ファイル     # 標準エラーをファイルに追記
コマンド &> ファイル      # 標準出力と標準エラーをまとめてファイルに上書き
コマンド > /dev/null 2>&1 # 標準出力と標準エラーを両方捨てる
リダイレクト記法一覧
記法概要
> ファイル標準出力をファイルに上書きします。ファイルが存在しなければ作成します。
>> ファイル標準出力をファイルに追記します。ファイルが存在しなければ作成します。
2> ファイル標準エラー出力(fd=2)をファイルにリダイレクトします。
2>&1標準エラー(fd=2)を標準出力(fd=1)と同じ場所に向けます。
&> ファイル標準出力と標準エラーをまとめてファイルに書き出します(Bash 4以降)。
> /dev/null標準出力を捨てます(/dev/null はビットバケツ)。
2> /dev/null標準エラーを捨てます(エラーメッセージを表示させたくない場合)。
>/dev/null 2>&1出力を完全に無音化します。
1>&2標準出力を標準エラーにリダイレクトします(エラーとして出力したい場合)。
サンプルコード

以下のディレクトリ構造を例に説明します。

📁 ~/project/ 📄 README.md 📄 script.sh

コマンドの出力をファイルに上書き保存します。『>』は既存の内容を消して新しい内容を書き込みます。

ls -la > filelist.txt
cat filelist.txt
total 16
drwxr-xr-x  4 user staff  128 Mar  5 10:00 .
drwxr-xr-x  8 user staff  256 Mar  5 09:00 ..
-rw-r--r--  1 user staff 1200 Mar  5 09:45 README.md
-rwxr-xr-x  1 user staff 2800 Mar  4 18:30 script.sh

『>>』で出力をファイルに追記します。ログの記録などに便利です。

echo "$(date): backup complete" >> backup.log
echo "$(date): cleanup complete" >> backup.log
cat backup.log
Fri Mar  6 12:00:00 JST 2026: backup complete
Fri Mar  6 12:05:00 JST 2026: cleanup complete

エラーメッセージだけをファイルに保存します。『2>』は標準エラー出力(fd=2)をリダイレクトします。

make 2> build_errors.log

標準出力と標準エラーをまとめてファイルに保存します。

make > build.log 2>&1

存在しないファイルを削除するとエラーメッセージが出ますが、『2> /dev/null』で捨てると画面には何も表示されません。終了ステータスはエラーのまま返ります。

rm nonexistent.txt 2> /dev/null
echo $?
1

出力を完全に無音化します。cron で定期実行するスクリプトなどに使います。

/path/to/script.sh > /dev/null 2>&1

『>』だけでファイルの内容をゼロにします(切り詰め)。

> logfile.txt

スクリプト内でエラーを標準エラーに出力します。『1>&2』で標準出力を標準エラーにリダイレクトします。

echo "エラーが発生しました。" 1>&2
概要

『>』はファイルを上書きするため、誤って重要なファイルに向けると内容が消えます。上書きを防ぐには Bash の『set -o noclobber』オプションを使うと既存ファイルへの『>』を禁止できます(回避するには『>|』を使います)。

標準入力のリダイレクトやヒアドキュメントについては『入力リダイレクト / ヒアドキュメント』を参照してください。パイプとの組み合わせは『パイプ(|)』も参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。