Linuxのリダイレクションの使い方【Linux/CentOS】

Linux

Linuxの実行結果は、通常ターミナル(黒い画面)に出力されますが、出力先をファイルに変更することができます。
この機能をリダイレクションといいます。
言葉ではピンと来ないので、実際に動作を試してみました。

リダイレクションの書式

出力結果をファイルに切り替えるには、コマンドと出力結果を保存するファイル名を「>」または「>>」でつなぎます。

ファイルを作成して出力結果を書き込み「>」

$ コマンド > [ディレクトリ][ファイル名]

既存のファイルに出力結果を追加「>>」

$ コマンド >> [ディレクトリ][ファイル名]

コマンドの出力結果をtxtファイルに書き込む

ディレクトリ一覧をfilelist.txtに書き込むには次のコマンドを実行します。

$ ls -la > filelist.txt

lsはファイルやディレクトリ情報を一覧で表示してくれるコマンド。-laは詳細を表示するオプションです。
この出力結果を「filelist.txt」のファイル名で保存します。

実際に保存されているかcatコマンドで確認します。

既存のファイルに出力結果を追加する

先ほど作成したfilelist.txtにカレントディレクトリを行末に追加するには次のコマンドを実行します。

$ pwd >> filelist.txt

先ほどと同じくcatコマンドでファイルの中身を確認すると、、

ファイルに出力結果を追加するリダイレクションは、いちいちファイルを開いて作業する必要がないので便利です。
例えば、.anyenvのPATHを通す時、 .bash_profileにパスを通す記述を追加するには次のコマンドを実行します。

echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile

まとめ

最後に注意することが2つあるので以下にまとめました。

「>」で既存ファイルを指定した場合、内容がすべて上書きされるので注意が必要。
「>>」は出力結果が最後に追記される。

コメント