Extracting .tar.gz files


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extracting .tar.gz files
# 1  
Old 11-05-2016
Extracting .tar.gz files

I have a directory tree containing archive .tar.gz files that I want to extract at the location where they recide.

How can I achieve such an operation?
# 2  
Old 11-05-2016
Hi,

Did you try man tar

Code:
tar xzf file.tar.gz

# 3  
Old 11-05-2016
Try something like this?
Code:
find "$(pwd)" -type d |
while read dir
do
  cd "$dir" || continue
  for archive in *.tar.gz
  do
    if [ -r "./$archive" ]; then
      tar zxf "./$archive"
    fi
  done
done


Last edited by Scrutinizer; 11-05-2016 at 06:27 PM.. Reason: Added -z
This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 11-05-2016
Wouldn't you need to account for the archives being gzipped; either by gunzipping them first or by adding the -z option to tar.
These 2 Users Gave Thanks to RudiC For This Post:
# 5  
Old 11-05-2016
Yes, indeed -z had fallen off. Added to my post...
# 6  
Old 11-05-2016
I am specifying the directories where the extraction is to take place in the variable argv_dir. For example having argv_dir="graphics" is giving me the error

Code:
./untar.sh: line 62: cd: graphics/maverik: No such file or directory
./untar.sh: line 62: cd: graphics/panorama: No such file or directory
./untar.sh: line 62: cd: graphics/guile-opengl: No such file or directory
./untar.sh: line 62: cd: graphics/3dldf: No such file or directory
./untar.sh: line 62: cd: graphics/plotutils: No such file or directory
./untar.sh: line 62: cd: graphics/gpaint: No such file or directory
./untar.sh: line 62: cd: graphics/dia: No such file or directory
./untar.sh: line 62: cd: graphics/gift: No such file or directory
./untar.sh: line 62: cd: graphics/libxmi: No such file or directory
./untar.sh: line 62: cd: graphics/xaos: No such file or directory
./untar.sh: line 62: cd: graphics/gimp: No such file or directory
./untar.sh: line 62: cd: graphics/gsegrafix: No such file or directory

The code is as follows

Code:
for f in ${argv_dir} ; do

  find "${f}" -type d |
  while read dir
  do
    cd "${dir}" || continue
    for archive in *.tar.gz
    do
      if [ -r "./$archive" ]; then
        echo "$dir"
        echo -e "tar -zxf ./$archive\n"
        #tar -zxf ./$archive
      fi
    done
  done

done

However when I use find "$(pwd)/$f" -type d things work ok

I want to be able to use both a relative path or a full path in the variable f

Last edited by kristinu; 11-05-2016 at 07:53 PM..
# 7  
Old 11-05-2016
Quote:
Originally Posted by RudiC
Wouldn't you need to account for the archives being gzipped; either by gunzipping them first or by adding the -z option to tar.
Some versions of tar (and cpio and pax) need to be given options to specify the type of archive to create when building a new archive, but automatically detect the archive type when extracting from or adding to an existing archive. Since we haven't been told what operating system is being used in this case, there isn't any way for us to check the man pages for that system to see if -z option is required when extracting files for the OP's system. The standards require pax to do this, but no longer require that cpio and tar even be present on conforming implementations. Although the standards never required that any of these utilities produce or process compressed archives, I don't remember seeing any version of pax that has options to produce a compressed archive that needed to be told that that archive was compressed when extracting files from it.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare 2 files tar.lzo with/without extracting

Hi Guys, I have 2 compressed files tar.lzo and having many subdirectories inside it. I would like to know which files having the difference in terms of size/content. I am using bash shell and unix server example:- file1 :- abc.tar.lzo file2 :- xyz.tar.lzo Result:- ... (4 Replies)
Discussion started by: himanshupant
4 Replies

2. UNIX for Beginners Questions & Answers

Linux read specific content file from tar.gz files without extracting

hello i wish to write the result of these below conditions in a file: 1. in a specific folder, i have many tar.gz files. 2. each tar.gz file contains ".dat" file in sub folders. 3. i wish to get the full path of these .dat files, if i find in it a specific word ("ERROR24"). 4. all this... (6 Replies)
Discussion started by: jimmyjames9
6 Replies

3. Shell Programming and Scripting

Bash not removing all .tar.bz2 files after extracting

In the bash below each .tar.bz2 (usually 2) are extracted and then the original .tar.bz2 is removed. However, only one (presumably the first extracted) is being removed, however both are extracted. I am not sure why this is? Thank you :). tar.bz2 folders in /home/cmccabe/Desktop/NGS/API ... (3 Replies)
Discussion started by: cmccabe
3 Replies

4. Shell Programming and Scripting

Extract contents of tar ball without extracting files

Hi, I'm using a tar command tar -xOvf /home/mytar.tar My intention is to extract data in files which are inside various directories, without extracting files to the disk. Is this the best way to achieve it? Thanks, Chetan (3 Replies)
Discussion started by: chetan.c
3 Replies

5. Shell Programming and Scripting

tar command to explore multiple layers of tar and tar.gz files

Hi all, I have a tar file and inside that tar file is a folder with additional tar.gz files. What I want to do is look inside the first tar file and then find the second tar file I'm looking for, look inside that tar.gz file to find a certain directory. I'm encountering issues by trying to... (1 Reply)
Discussion started by: bashnewbee
1 Replies

6. UNIX for Advanced & Expert Users

extracting multuiple tar files with while and read

Is anyone out there? I'm trying to run a script i wrote that extracts multiple .tar files in succession by pasting it into standard input. It does extract them all but I cant get it to stop looping and when I hit enter I get a tar command error like its still looking for files to extract. ie; ... (2 Replies)
Discussion started by: commoja
2 Replies

7. UNIX for Dummies Questions & Answers

Extracting specific files from a tar file in HP-UX

I have tried: tar -xfv mytarfile.tar archive/tabv/* tar -xfv mytarfile.tar --wildcards 'archive/tabv/*' tar -xf mytarfile.tar -v --wildcards 'archive/tabv/*' tar -xfv mytarfile.tar --wildcards --no-anchored 'archive/tabv/*' tar -xfv mytarfile.tar --wildcards `archive/tabv/*` and none... (5 Replies)
Discussion started by: zapper222
5 Replies

8. Shell Programming and Scripting

Extracting .tar files.

Hey guys complete n00b here so I'll try my best at explaining. I'm creating a backup and restore utility and decided to use tar. I create a backup folder in each user's account and when backing up (say word processing files), I use the following: tar cvf /home/user/backup/wpbackup.tar... (2 Replies)
Discussion started by: EwanD
2 Replies

9. Shell Programming and Scripting

bash - batch script for extracting one file from multiple tar files

so i have hundreds of files named history.20071112.tar (history.YYYYMMDD.tar) and im looking to extract one file out of each archive called status_YYYYMMDDHH:MM.lis here is what i have so far: for FILE in `cat dirlist` do tar xvf $FILE ./status_* done dirlist is a text... (4 Replies)
Discussion started by: kuliksco
4 Replies

10. UNIX for Dummies Questions & Answers

error while extracting using TAR

Hi folks, When I am extracting an archive using the: tar -xvf /dev/rmt0 command i get the following error: x ./GRBD8901/GRBR006T, 1763253368 bytes, 3443855 media blocks. tar: 0511-197 ./GRBD8901/GRBR006T: Cannot write data extracted with the tar command: ... (7 Replies)
Discussion started by: Erik Rooijmans
7 Replies
Login or Register to Ask a Question