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

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

リダイレクトがどのように機能するかを知りたいです。このコマンド

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

英語の翻訳は何ですか?

のすべてのデータはtar入力にリダイレクトされ、次にpvpvにリダイレクトされます。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。圧縮されたアーカイブを作成して標準出力()に出力するように指示されたので、全体tar的な効果f -は圧縮されたアーカイブを構築してパイプし、それを記録することです。データフローに従って更新される進行状況バーを表示します。pvpvbackup.tgzpv

括弧は必要ありません。

2番目のコマンドは、1番目のパイプラインの後半を変更します。

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

書き換えますbackup.tgzが、サブシェルの標準エラー(括弧で示されている)を標準出力にリダイレクトし、以下を提供します。それdialog独自の進行状況表示を生成します。

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

おすすめ記事