コマンド出力をファイルへ保存するには?

コアの > <file> 演算子を使います。既定は追記で、-r を付けると出力先ファイルを置き換えます。

既定は追記

dns google.com > save.log は DNS 結果を端末に表示したまま、同じテキスト表現を lil-terminal の現在のディレクトリにある save.log へ追記します。結果の後には解決済みの出力先パスが表示されます。再度実行すると、以前の内容を消さずに新しい結果が末尾へ追加されます。

置換または追記を明示する

ファイルを置き換える場合は出力先の後に -r を付けます:dns gmail.com > save.log -r-a は既定の追記モードを明示的に指定します。空白を含むパスは引用符で囲んでください。演算子はコアが処理するため、各モジュールが画面表示を保存するだけのために個別のエクスポートフラグを持つ必要はありません。

リダイレクトできる結果

通常のテキストとして表現できる結果だけが書き込まれます。対話型エディター、秘密入力、ダウンロード、ブラウザー制御イベントはファイルへ変換されません。コマンド自身の構文ですでに > を使う場合は、その意味が維持されます。出力リダイレクトは最後の出力演算子として認識されます。

直前の結果を再利用する

history -o は現在の PHP セッションに保持された、直前のリダイレクト可能なテキスト結果を返します。history -o > history.log は追記で保存し、history -o > history.log -r はファイルを置き換えます。デスクトップの Ctrl/Command+S ショートカットも同じ標準コマンドを実行します。

値の指定にコロンを使う理由

現在の文法では、> はコアの出力リダイレクト専用です。値を受け取るコマンドは : を使います。例は ini app.ini -w key : valuejson app.json -w path : valueses path : valueattr file key : valuedb : SELECT ... です。これにより曖昧さがなくなり、command ... > file はどのコマンドでも同じ意味になります。古いモジュールが残っている場合はコアが検出し、誤った内容を黙ってリダイレクトせず移行メッセージを表示します。

dns google.com > save.log
dns gmail.com > save.log -r
env > "logs/env current.log" -a
history -o > history.log
history -o > history.log -r

関連ドキュメント

← FAQに戻る