我们如何从大型 tar.gz 文件中提取特定文件?我在这个问题中找到了从 tar 中提取文件的过程,但是,当我在那里尝试提到的命令时,出现错误:
$ tar --extract --file={test.tar.gz} {extract11}
tar: {test.tar.gz}: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
然后我如何从中提取文件tar.gz
?
我想下载并解压缩给定目录下的存档。到目前为止,这是我的做法:
wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz
tar zxf dbt2-0.37.50.3.tar.gz
mv dbt2-0.37.50.3 dbt2
Run Code Online (Sandbox Code Playgroud)
我想即时下载和解压缩存档,而无需将其tar.gz
写入磁盘。我认为通过管道输出wget
totar
并给出tar
目标是可能的,但实际上我不知道如何将这些部分放在一起。
我有一个foo.tar.xz
包含很多(比如 200000)个文件的大文件。我发现这个档案包含一些我不想要的(大约 5000 个)文件。我没有足够的磁盘空间将整个内容解压缩到我的磁盘上;此外,如果我这样做,我担心属性/权利可能会丢失。不过,我有足够的空间来托管压缩存档的两个副本。是否有工具可以即时从存档中删除某些文件(在文件名中使用正则表达式指定),即无需将存档解压缩到单个文件中?
.tar.gz
档案的一个问题是,当我尝试只列出档案的内容时,计算机实际上会对其进行解压缩,如果文件很大,这将需要很长时间。
其他文件格式,如.7z
, .rar
,.zip
没有这个问题。列出它们的内容只需一瞬间。
在我天真的看来,这是.tar.gz
存档格式的一个巨大缺点。
所以我实际上有两个问题:
.tar.gz
尽管有这个缺点,为什么人们使用这么多?