重定向到 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

shell 的控制和重定向運算子是什麼?重定向順序為背景。

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

告訴 shelltar -czf - ./Downloads/以重定向到的標準輸出運行(pv -p --timer --rate --bytes > backup.tgz)

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

告訴 shellpv -p --timer --rate --bytes以連接到管道的標準輸入運行tar,並將標準輸出重定向到backup.tgz。由於tar被告知創建一個壓縮存檔並輸出到其標準輸出 ( ),因此總體效果f -是建立一個壓縮存檔,將其通過管道傳輸pv,然後將pv其寫入到backup.tgzpv顯示一個進度條,隨著資料流過它而更新。

括號不是必需的。

第二個指令更改第一個管道的後半部:

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

再次寫入backup.tgz,但也將子 shell 的(由括號引入的)標準錯誤重定向到標準輸出,並提供其中dialog產生自己的進度顯示。

如果按照命令中給出的順序設定重定向,則此處需要括號:pv -n > backup.tgz 2>&1會將pv的標準輸出和標準錯誤重新導向到backup.tgz,這不是您想要的。首先重定向標準誤差也可以達到預期的效果:pv -n 2>&1 > backup.tgz

相關內容