PV へのリダイレクトは実際にどのように機能しますか?

PV へのリダイレクトは実際にどのように機能しますか?

リダイレクトがどのように機能しているのか理解しようとしていますこのコマンド

# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

英語の翻訳は何ですか?

のすべてのデータはtarへの入力としてリダイレクトされpv、その後 にpvリダイレクトされますbackup.tgz

では、なぜ括弧がpv必要なのでしょうか?

では、このリダイレクトにはどのような意味があるのでしょうか?

tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

pvの意味は何ですか2>&1

答え1

見るシェルの制御演算子とリダイレクト演算子とは何ですか?そしてリダイレクトの順序背景用。

tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

tar -czf - ./Downloads/標準出力を にリダイレクトしてシェルを実行するように指示します(pv -p --timer --rate --bytes > backup.tgz)

(pv -p --timer --rate --bytes > backup.tgz)

pv -p --timer --rate --bytesは、標準入力を からのパイプに接続しtar、標準出力を にリダイレクトしてシェルを実行するように指示します。は圧縮アーカイブを作成し、その標準出力 ( ) に出力するように指示されているbackup.tgzので、全体的な効果は、圧縮アーカイブを構築し、それを にパイプし、に書き込むことです。は、データが通過するにつれて更新される進行状況バーを表示します。tarf -pvpvbackup.tgzpv

括弧は必須ではありません。

2 番目のコマンドは、最初のパイプの後半部分を変更します。

(pv -n > backup.tgz) 2>&1

再び に書き込みますbackup.tgzが、サブシェルの(括弧で囲まれた)標準エラーを標準出力にリダイレクトし、それdialog独自の進行状況表示を生成します。

コマンドで指定した順序でリダイレクトが設定されている場合は、ここで括弧が必要です。 は、の標準出力と標準エラーのpv -n > backup.tgz 2>&1両方を にリダイレクトしますが、これは望ましくありません。 最初に標準エラーをリダイレクトすることによっても、目的の効果が得られます。pvbackup.tgzpv -n 2>&1 > backup.tgz

関連情報