从 tar 压缩目录中提取特定文件?

从 tar 压缩目录中提取特定文件?

当您从压缩目录中提取单个文件时tar如何从 tar.gz 中提取特定文件)该文件的副本是否保持压缩状态或者是否已从目录中完全删除?

例如:

$ tar -zxvf mydir.tar.gz file1.txt

file1.txt保留存储在mydir.tar.gz

答案1

当然,tar 文件,无论是否压缩,都不会被修改。

没有“tar压缩目录”。可能存在包含零个或多个目录内容的压缩 tar 文件。

答案2

一个简单的测试表明,即使从文件中提取了副本,该文件仍保留在存档中。

压缩包的内容
$ tar ztvf somedir.tar.gz
drwxrwxr-x vagrant/vagrant   0 2018-08-08 00:33 somedir/
-rw-rw-r-- vagrant/vagrant   6 2018-08-08 00:33 somedir/file2.txt
-rw-rw-r-- vagrant/vagrant   6 2018-08-08 00:33 somedir/file1.txt
文件大小,181 字节
$ ll
total 4
-rw-rw-r-- 1 vagrant vagrant 181 Aug  8 00:33 somedir.tar.gz
从 tarball 中提取文件
$ tar zxvf somedir.tar.gz somedir/file1.txt
somedir/file1.txt
解压文件后
$ ll
total 8
drwxrwxr-x 2 vagrant vagrant 4096 Aug  8 00:35 somedir
-rw-rw-r-- 1 vagrant vagrant  181 Aug  8 00:33 somedir.tar.gz

tarball 的大小始终保持 181 字节。

相关内容