コマンド実行中に一時的に標準出力を表示します。

コマンド実行中に一時的に標準出力を表示します。

複数の大容量ファイルを複数のサーバーに連続して送信します。進捗状況を見たいのですが(使用したくありませんscp --quiet)、コピーが完了したら統計を見る必要はありません。

標準入力から入力を受け取り、標準出力に反映し、入力ストリームが閉じたときに削除するツールはありますか?これはncursesが何ができるかを思い出させますが、オンラインでこれを行う何も見つからないようです。

たとえば、次のユーティリティを呼び出す場合は、echo-then-discard次のように呼び出すことができます。

scp lots-*-of-files "$server:$dest" | echo-then-discard

そのようなツールが存在しても、アップデートタイプでは機能しない可能性がありますscp。これはパイプscp出力が進行を放棄しているように見えるためです(おそらく、ncursesが素晴らしいアップデートを実行するには端末に直接アクセスする必要があるため)。

答え1

グラフィックデスクトップ環境

簡単な方法は、ターミナルエミュレータウィンドウでそれを使用lessしてプログラムの出力をリダイレクトすることです。

program-name | less

たとえば、色を保存したい場合は、

ls -l --color ~/* | less -r

lessを終了すると(「q」を使用)、前の会話はそのまま残ります。

テキストモード画面

多くの最新のテキストモード画面は以前の会話を維持しませんが、インストールして使用できますscreen

screen
# run some programs here

screen
# run the program from which you want temporary output saved here
exit

その後、「最初の画面」とその会話に戻ります。

screenこのプログラムは高度なプログラムであり、基本機能の一部だけを知っています。しかし、テストした結果の仕組みは次のとおりです。

関連情報