2015-06-21 814 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

相关问题