ダイアログウィンドウにカールの進行状況を正しく表示するには?
curl http://mysite.corp/image/root_21.tar.bz2 | tar -C /mnt/dest/ -jxf -
このコマンドを試しましたが、ご覧のように正しく表示されません。
curl -f -x '' -L http://mysite.corp/image/root_21.tar.bz2 | tar -C /mnt/dest -xjpf - --exclude='dev/*' | dialog --backtitle "dialog" --stderr --title 'Linux Image' --textbox /tmp/log 30 80
このコマンドは私にはほとんど効果がありましたが、各行に新しい行の進行状況を表示するのではなく、独自に上書きしたいと思います。デフォルトでは、元のコマンドの表示と同じですが、ダイアログボックスに表示したいと思います。
(curl -f -x '' -L http://mysite.corp/image/root_21.tar.bz2 | tar -C /mnt/dest -xjpf - --exclude='dev/*' ) 2>&1 | dialog --progressbox 20 120
答え1
--progressbox
次のダイアログボックスオプションを使用できます。
(curl ... | tar ... ) 2>&1 | dialog --progressbox 30 120
2>&1
curl
とのstderr出力をtar
標準入力にリダイレクトします。つまり、パイプをdialog
。
行の書き換え(制御文字:CR '\ r'(キャリッジリターン))はサポートされていないため、追加の行dialog
から各進行の変更を取得します。
答え2
カールを使用してダウンロードしてリダイレクトする場合アスファルト、簡単な進行状況を印刷できます。
--checkpoint[=NUMBER]NUMBER 個のレコードごとに進行メッセージを表示
--checkpoint-action=ACTION 各チェックポイントで ACTION を実行します。
たとえば、以下は10個のチェックポイントごとにポイントを印刷しながらgzファイルをダウンロードして抽出します。
curl -s -L $url | tar -xz --checkpoint=.10
進行中の詳細については、次の手順を実行してください。
- カールの「自動」出力を望まない場合は、カールコマンドから「-s」を削除してください。
- アーカイブから抽出されたファイルのリストを印刷するには、tarコマンドに「-v」を追加します。