Tar
wget 並在後台通過管道傳輸到 tar
我正在嘗試下載一個大小為
.tar.gz
( *> 2GB)*的大文件。bash 腳本還做了很多其他的事情,所以我想開始下載,然後繼續處理 bash 腳本中的其他命令。我正在使用wget
和管道連接tar
並在後台執行它&
。wget -q "https://download-of-large-file-here.tar.gz" | tar xz & # other commands here
然而,這打破了:
gzip: stdin: unexpected end of file tar: Child returned status 1 tar: Error is not recoverable: exiting now
知道如何進行這項工作嗎?
您必須指示
wget
寫入 STDOUT,通過傳遞-O -
給 wget 來執行此操作,否則它將文件保存到磁碟。tar
失敗是因為執行時它期望來自 STDIN 的東西。這應該有效:
wget -q -O - "https://download-of-large-file-here.tar.gz" | tar xz &
where
-q
抑制來自 STDOUT 的預設進度資訊-O -
並將輸出文件設置為 STDOUT。