如何存档和提取.tar.gz文件

Shu*_*ams 5 gzip tar solaris-10

一个简单的问题.在x86 Solaris 10上,我尝试了以下方法来压缩文件的文件夹(Data).

tar -cvf /path/to/Data/* | gzip > /path/to/archive/Data.tar.gz
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用以下命令列出文件名及其大小:

gunzip -c Data.tar.gz
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试解压缩(用于验证)时Data.tar.gz:

gzip -d Data.tar.gz
tar -xvf Data.tar
Run Code Online (Sandbox Code Playgroud)

我收到"校验和错误"

有人可以建议在Solaris 10中压缩和提取文件的正确方法.谢谢

jan*_*rvs 16

您可以通过两个步骤进行归档:

$ tar cvf archive.tar file* 
$ gzip archive.tar
Run Code Online (Sandbox Code Playgroud)

(它将创建archive.tar.gz,同时删除archive.tar.)

提取也分两步:

$ gunzip archive.tar.gz
Run Code Online (Sandbox Code Playgroud)

(它将创建archive.tar并删除archive.tar.gz.)

$ tar xvf archive.tar
Run Code Online (Sandbox Code Playgroud)

要列出.gz文件中的文件:

gzip -l archive.tar.gz
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用7zip将所有文件放在一起并压缩它们.

7z a archive.7z Makefile* (to create archive)
7z l archive.7z           (to list files inside the archive)
7z e archive.7z           (to extract)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ler 3

由于您正在使用管道(正如您应该的那样),因此您需要使用-来指示 stdin 或 stdout。例如

tar -cvf - data/* | gzip > data.tar.gz
gzip -dc data.tar.gz | tar -xvf -
Run Code Online (Sandbox Code Playgroud)