2015-06-21 813 views
6

我有一個超大或損壞的error_log超大tarbell存檔,導致存檔在嘗試提取時掛起。有沒有辦法在解壓縮之前將其從存檔中刪除,或者在Mac OS X終端上解壓縮該特定文件時解壓縮該存檔?如何從tar.gz存檔中刪除單個文件

我發現然而如何efficiently-remove-files-from-large-tgz這個帖子,我試過--delete標誌,但收到此錯誤:

tar: Option --delete is not supported 

有沒有一種辦法:

  1. 從刪除文件沒有解壓它的檔案?
  2. 提取存檔但排除該文件?
+0

哪個版本的'tar'您使用的?如果它過時了,那麼嘗試更新到最新版本,如果'tar'支持'--delete'作爲選項,則檢查'man'頁面。 –

+1

'--delete'選項特定於一些'tar'程序(特別是Linux下的默認程序)。從內存中,macos下的默認tar不支持。您需要閱讀man/help文件,或者獲取支持此功能的程序。如果所有其他操作失敗,請解壓縮.tar.gz文件,從壓縮文件中提取所有內容,刪除不需要的文件,然後重新生成壓縮文件。 – Peter

+0

Santosh和Peter,非常感謝你的回覆。 Santosh,不確定哪個版本的tar在Mac OS x上運行,也不知道如何更新它。彼得,也謝謝。這不是一種選擇,因爲由於error_log的大小,提取歸檔文件將失敗。 – KillerDesigner

回答

9

正如它不能刪除使用tar文件的註釋解壓時提到,但可以排除的文件:

tar -zxvf file.tar.gz --exclude "file_to_exclude" 
+0

像魅力一樣工作。謝謝。 – KillerDesigner

相關問題