スクリプトを実行する前にファイルにリダイレクトできることはわかっていますstdout
が、すでに実行されたプログラムの出力全体にアクセスする方法はありますか? 出力が長すぎると、ターミナル ウィンドウによって切り取られ、最初の出力が表示されません。
答え1
いくつかの提案があります:
- ターミナル ウィンドウに保持される行数を増やします。私が使用できるすべてのシステムでは、通常は 10,000 行程度 (または最大可能行数より少ない) に設定しています。
- (おそらくもう少し実用的です) 出力をキャプチャできるようにする必要がある場合は、新しい bash シェルを起動し、出力を tee (
bash | tee record.txt
) でファイルにパイプします。そのシェルで実行されたコマンドからの出力はすべて、ファイル "record.txt" に格納されます。残念ながら、入力 (入力したコマンドを含む) とシェル プロンプトはキャプチャされません。 - (より良い) 実行する前に、安全を確保したいと思われるものがあれば、 を使用します
script
。これにより、入力とプログラム出力の両方のキャプチャが開始されます。作業が終わったら、シェルを終了するか、Ctrl-D を入力します。 注記:スクリプトによって生成された出力は、「スクリプト」が終了するまで書き込まれない可能性があります。