Extracting .tar.gz files


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Extracting .tar.gz files
# 8  
Quote:
Originally Posted by kristinu
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
One might note that using the command argv_dir="graphics" sets argv_dir to a relative pathname and that your script attempts to change directory into a directory based on that relative path every time it reads a directory from the find command's output. Since it never changes directory back to its starting point from the directories it descends into, the 2nd time through the loop is highly unlikely to find the directory that find found under ./graphics when it is sitting in ./graphics/first_directory where first_directory is the name of the first directory that find found in ./graphics.

You might have a better chance of getting what you want if you set argv_dir to an absolute pathname. Alternatively, you could change the loop to move you back to your original location after processing a subdirectory:
Code:
  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
    cd -
  done

Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #484
Difficulty: Medium
A compiler transforms source code into object code, a floating point number format that machines understand.
True or False?

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. UNIX for Dummies Questions & Answers

Tar stucks while extracting

I am trying to extract tar file of size 167MB but most of the times tar command stuck while extraction. Command: new 24389 24369 0 Nov21 ? 00:00:00 tar -xf NCSanJose1_req_rep.tar While running process with gdb following back trace was obtain: ... (24 Replies)
Discussion started by: freebee
24 Replies

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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