2015-10-19 144 views
1

有麻煩了執行如下命令:需要幫助的tar命令

tar -xvf arch.tar.gz -s '/^bundle//' 

可能是

-s '/^bundle//' 

是一個問題,因爲我有這樣的錯誤:

$ tar -xvf arch.tar.gz -s '/^bundle//' 
tar: /^bundle: Not found in archive 
tar: Exiting with failure status due to previous errors 

試圖在Cygwin/Win10下運行該命令。 它是更長的腳本的一部分,但我不確定原作者的想法是什麼。存檔確實包含了「包」文件夾......並且它是唯一的第一級文件。

預先感謝您:)

+0

哪個'tar'是那個? (請發佈'tar --version'的答案) –

+0

-s標記是對要解壓縮的文件進行排序以檢查是否在存檔中匹配,檢查在程序邏輯中是否有意義(如果需要的話),否則您可以刪除它並使用tar -xvf arch.tar.gz軟件包 – narendra

+0

tar(GNU tar)1.28由Cygwin打包(1.28-1)版權所有(C)2014自由軟件基金會,Inc. –

回答

0

-s並不意味着做替代,這似乎是你如何嘗試使用它。你可能想--xform='s/^bundle//'

-s有幫助列表如下條目:

-s,--preserve階,
成員參量在相同的順序列出
--same階 在存檔

與您的代碼文件它實際上是試圖找到一個不存在的名字/^bundle//一個文件,即使bundle呢。另外,我給出的--xform選項將重寫文件的名稱,從正面剝離字符串bundle。如果你只是想不提取該文件bundle你想的標誌--exclude='bundle'

在這種情況下,如果bundle是歸檔中的頂級目錄,它是唯一一個,你也可以使用該標誌--strip-components=1,儘管這會擺脫所有的頂級目錄的,所以可能不是你想要什麼取決於你的存檔

+0

問題是,我不是給出的行的作者...它是按原樣寫的,但它不工作...我唯一的想法是,目標是提取文件夾結構,但沒有第一個/捆綁/文件夾... –

+0

@PaulPaku我剛剛更新了我的答案,以說明如何做到這一點 –

+0

我認爲這個想法是提取所有文件,但首先刪除名爲/ bundle /的頂級文件夾。所以/ bundle/1/*和/ bundle/2/*會被解壓縮到/ 1/*和/ 2/*文件/文件夾中。 –

0

感謝所有,

問題解決等,那麼「焦油」,的方式,但對於那些誰可能在這裏感興趣的是我在網上找到的答案:

如果你是在Linux上開發或使用的GNU tar,這個命令應該工作:

tar -xvf arch.tar.gz --transform 's|^bundle/||' 

對於基於BSD的Mac或操作系統:

tar -xvf arch.tar.gz -s '/^bundle//' 

是,當時的想法是,以去除/文件路徑中的/ bundle /文件夾。

+0

如何在Windows 10中做到這一點。我沒有找到bundle – aaviss