嘗試使用以下命令解壓縮管道 tar 檔案時出現以下錯誤:
$ git archive --format=tar 0af62b1 | tar -xf -C /the/path/here/
tar: -C: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
第一部分git archive --format=tar 0af62b1
輸出一個 tar 文件,印在螢幕上。可以使用參數 將該輸出捕獲到文件中--output file_name
。
在第二部分中,我嘗試將文件的內容提取到指定的路徑中。當單獨運行時,兩者都可以完美運行,git archive 0af62b1 --output file_name
然後是tar -xf file_name -C /the/path/here/
.
為什麼在這種情況下無法進行管道傳輸?
答案1
我會嘗試將您的管道輸入git
到 標準輸入的同義詞tar -xf - -C /the/path/here/
。-
或者更簡單tar -xC /the/path/here
(-
是預設檔)。
答案2
問題在您的錯誤輸出中給出:
$ git 檔案 --format=tar 0af62b1 |柏油-xf-C/該/路徑/此處/
tar:-C:無法開啟:沒有這樣的檔案或目錄
tar: 錯誤不可恢復: 立即退出
您告訴 tar 使用名為 -C 的文件,該文件不存在,因此會失敗。
在工作情況下,您給予一個名為 file_name 的文件,該文件存在並且一切正常。
可能的修復:刪除命令中的“-f -C”。