Carpe Diem

  Top > スポンサー広告> Unix・Linuxコマンド > リダイレクト  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

リダイレクト

2011 - 11/24 [Thu] - 15:30

前回のcronでリダイレクトについて書いていたので使い方のちょっとしたまとめ。

◆一般的な使い方
$ command > outfile

この「>」は「1>」と同じで、標準出力(コンソール画面)の出力先をoutfileに指定している。だからcommandでコンソールに表示される文字列を、outfileに記述します。

ex)
$ ls > ls.txt

とすれば、リスト結果は画面に出ず、ls.txtというファイルへ出力します。
$ less ls.txt

とすればリスト結果が書き込まれていると思います。

◆追記する

$ command >> outfile

単に「>」だけだと、上書きになってしまいます。元々あるファイルにこれをやって内容を消してしまわないように、追記する場合も覚えておきましょう。

◆エラーを出力する

$ command 2> outfile

エラーが返ってくる場合、そのエラーメッセージをoutfileへ出力します。
ex)
$ ls hogehoge.txt > ls.txt

ls.txtには
ls: hogehogeにアクセスできません: そのようなファイルやディレクトリはありません

とエラーメッセージが書き込まれています。


◆標準出力もエラーも同じところに出力する
$ command > outfile 2>&1

これは前回のcronで勉強した部分です。これは
$ command 1> outfile 2>&1

と同じなので、1も2もoutfileに出力先が設定されています。
もしこれが逆だと、以下のように書くわけですが

$ command 2>&1 1>outfile

これは2が1(まだコンソール画面)へと向き、その後で1がoutfileを向くので、結果的に
1 > outfile
2 > コンソール画面


となるのでダメというわけです。

◆よく使うcommand

$ echo test > outfile

echoは引数(書き込まれた文字列)をコンソール画面へ出力するので、引数がそのままoutfileへ書き込まれます。
一番使うんではないでしょうか。

$ cat test.txt test2.txt > outfile

catはファイルの中身を連結して表示するので(引数1つならそのファイルの中身だけ)、連結された内容がoutfileへ出力されます。SSHの設定で行った

$ cat id_rsa.pub >> authorized_keys

もリダイレクトだったわけですね。

$ find / -name test -print > outfile


とかもありでしょうか。色々使い道がありますね。
以上です。

ソース:
リダイレクト (CLI)
more, less, catの違い

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。