bashターミナルから以前の出力をファイルにコピーする方法

bashターミナルから以前の出力をファイルにコピーする方法

ターミナルの出力をファイルにリダイレクトする方法は知っています。たとえば、~/Documents 内のすべてのファイルをリストし、test.txt というファイルに出力したい場合は、次のようにします。

ls ~/Documents > test.txt

質問は、コマンドを実行した後で、出力を test.txt にコピーできるかどうかです。これは、出力をファイルにコピーするかどうかを事前に知る必要がないことを意味します。次のようなことをしたいのです。

ls ~/Documents

それからこれ:

<bash command for copying standard output to test.txt>

どのような助けでも大歓迎です。

答え1

を使用することもできますteeが、これは厳密には前のコマンドを実行した後ではありません。

ls ~/Documents | tee test.txt

出力は通常どおりコマンド ライン セッションに書き込まれ、test.txt にも書き込まれます。

あるいは、GNU 内で実行している場合はscreen、スクロールバックバッファ内を移動したり、コピー/貼り付けを行うコマンドがあります。詳細については、このスーパーユーザーの質問

答え2

Emacsウィンドウでシェルセッションを開始し、コピーして貼り付けるだけで済みます。

(vi内からコマンドを発行して、現在のviバッファに出力を組み立てることもできます)、

またはxtermウィンドウからコピーして貼り付けることもできます。

または、script(1)を使用してシェルセッションを実行し、後でセッション出力を編集することもできます。

または、コマンドをやり直すこともできます。

これが役に立つことを願います、クラウス

関連情報