4

I want to see a tar.gz files that are inside a tar file.

So I have a tar file that has a tar.gz file inside and I want to see the tar.gz files without extraction my tar and my tar.gz.

So to explain more, inside my tar I have a tar.gz, File.tar -> File.tar.gz. so I need to see the files inside my tar.gz but my tar.gz is already inside my tar, and that without extracting my tar and also my tar.gz.

I tried this but doesn't work : tar -xvf File.tar File2.tar.gz | gtar -ztvf -

Can you help me with this?

6
  • Hello again , inside my tar I have a tar.gz, File.tar -> File.tar.gz. so I need to see file inside my tar and inside my tar.gz that is already inside my tar .
    – Issam
    Jan 3, 2017 at 11:00
  • It might help to use example filenames. As it stands, your explanation is not the clearest. Jan 3, 2017 at 11:17
  • I have this file . File.tar inside this file you can find a file.tar.gz and other files , when I do a tar -tvf File.tar , I can see all the files : exemple : File1 and File2.tar.gz but I want to see the files inside File2.tar.gz . I know I can do something like tar -xvf File.tar -O File2.tar.gz.
    – Issam
    Jan 3, 2017 at 11:23
  • Or something like that
    – Issam
    Jan 3, 2017 at 11:24
  • Or I need to make a pipe or an exec.
    – Issam
    Jan 3, 2017 at 11:25

5 Answers 5

6

You'll need to run tar -tf /path/to/file.tar.gz, or tar -tzf /path/to/file.tar.gz.

As far as I've seen, you should avoid using -tf, and prefer -tzf: at least on BSD systems, forgetting the z gives:

tar: input compressed with gzip; use the -z option to decompress it

Following up on your comment, say you want to list the content of an archive inside an archive, ... Try this:

tar -zxOf /path/to/parent/archive.tar.gz path/to/packed/archive.tar.gz | tar -ztf -

With path/to/packed/archive.tar.gz, the path of your archive inside /path/to/parent/archive.tar.gz.

3
  • Doesn't work : and my parent package archive is a tar only not a tar.gz.
    – Issam
    Jan 3, 2017 at 14:55
  • The option -O usually switches to old tar archive versions. You do not seem to speak about tar but probably about gtar.
    – schily
    Nov 29, 2018 at 9:49
  • The -O option is about writing tar output to stdout. My answer is about tar, the same you would find on BSD systems. The tf/tzf comment is however about gtar specifics, pointing out they are not standard thus should be avoided.
    – SYN
    Mar 20, 2021 at 22:40
2

There are many solutions you can use the command

tar -tvf filename.tar.gz

You can also use vim

vim filename.tar.gz
1
  • vi and it's clones do not support to edit binary files without destroying the content and a compressed tar archive is heavily binary.
    – schily
    Nov 29, 2018 at 9:50
0

vim fnm.tar.gz or vim flnm.tgz tar -tvzf fnm.tar.gz or tar -tvzf flnm.tgz

Both of these will help display the contents in the file. If you have a tar file inside of another tar file then thats a bit tricky.

0

_ for 1 level of taring _

a portable solution to uncompress 'on the fly' and then have tar display the content:

gzip -dc - <file.tar.gz | tar tvf -

this is the pendant of the compression on the fly:

tar cf -  files and dirs | gzip -c - >newcompressedtarfile.tar.gz

(of course, with a recent (and usually GNU variant) tar you can just: tar tzvf file.tar ... but the way above is portable, and can be generalised to many other scenarios (find infos inside files without ungzipping them first, etc)

_ for you case: list the content of a .tar.gz that is inside a .tar _

You will probably need the GNU version of tar and use the --to-stdout (or Capital O, -O) optino to uncompress a file to stdout instead of creating it on disk:

# let's say Archive.tar contains file.tar.gz, 
{and you want the content of the latter without writing any files on disk

tar -xOf  archive.tar  file.tar.gz | gzip -dc - | tar tvf -
6
  • I can't do something like this : <code> tar -xvf File.tar | gtar File2.tar.gz | tar -tvf - </code>?
    – Issam
    Jan 3, 2017 at 12:04
  • I have this error : tar: illegal option -- O
    – Issam
    Jan 3, 2017 at 15:33
  • The -O parameter is used only with tar.gz files not with a tar file.
    – Issam
    Jan 3, 2017 at 16:31
  • @Issam : you specified Linux, so usually GNU tar, which should know -O (not for compressed files, that was the z option which I just edited out as the first tar file is not .gz). Jan 3, 2017 at 17:20
  • The -O work for my tar.gz but not for my tar maybe because I am in Aix
    – Issam
    Jan 3, 2017 at 17:51
0

Gnu tar has "--to-command'

tar xzf tarfile1.tar.gz pathto/tarfile2.tar.gz --to-command='tar tvzf -'

Anyway "-O" also works for you :

tar xzf tarfile1.tar.gz pathto/tarfile2.tar.gz -O | tar tvzf -

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.