Hi,
I want to view/display the contents of one file in tar file.
For example if the tar file is sam.tar.gz and one of the file inside is E1.txt, how do i view the contents of this E1.txt file.
Olso if I want to extract the E1.txt file only from sam.tar.gz how can i do that.
Thanks in advance.
To print the files use "zcat". But I know no option for it to cat only a single file of the archive.
To list the contents of an archive, use:
tar tvf my.tar
# or
tar tvzf my.tar.gz
To extract the file "singlefile.dat" of the archive:
tar xvzf my.tar.gz singlefile.dat
Thanks.
One more question
Where will the singlefile.dat be extracted. I dont want to overwrite any existing file.
Usually in your pwd where you currently are. If done non-interactive via script and cronjob for example, you should do a cd to be sure, you are at the place in the filesystem, where you want to be.
I avoid to tar stuff with a leading slash. So I can always move to a tmp directory and extract there to avoid overwriting.
It's always a bad surprise if some &*!@$! (to have it in comic speech censorship) creates an archive with absolute path. That can cause an unwanted update of your data heh.
Actually I tared the file with absolute path like the command below
tar -cvf sam.tar /home/sam
Now I want to extract /home/sam/E1.txt in sam.tar to /home/ram
Please help.
As I said, please tar without absolute paths. You can get more problems of this than you'd like. Just create some tmp subdirectory close to your destination, uncompress/untar it there and move it to where it belongs.
Gnu tar helpfully removes any leading / in a path to avoid the potential problems that zaxxon describes -- unless specifically told to keep it with -P. If your tar doesn't do this, you can only do
tar -xf sam.tar /home/sam/E1.txt
cp /home/sam/E1.txt /home/ram
i.e. you will create E1.txt with the absolute rather than a relative path.
tar -x can only extract from the archive what you put in there; use -t (as zaxxon said) to see what that is.
With GNU tar you can use --strip to remove the top level directories when unpacking. See "man tar".