How to extract files from a tar file without creating the directories?


 
Thread Tools Search this Thread
Operating Systems Solaris How to extract files from a tar file without creating the directories?
# 1  
Old 10-08-2010
How to extract files from a tar file without creating the directories?

Hello all.

I have a tar file that contains a number of files that are stored in different directories.

If I extract this tar file with -xvf , the directories get created.

Is there a way to extract all of the files into one directory without creating the directories stored in the tar file.
# 2  
Old 10-08-2010
Not really - that is the builtin behavior of tar.

Try this on /var/tmp or /tmp or your home directory (be sure there is disk space beforehand)
Code:
cd /tmp
mkdir junk
cd junk
tar xvf mytarball.tar
cd ..
export DEST=/real/path/to/files
find junk -type -f  |
while read fname
do
     bn=$(basename $fname)
     mv $fname ${DEST}/${fn}
done 
rm -r ./junk

# 3  
Old 10-08-2010
If all the files are at the same tree depth (I mean, they all are in the same number of directories), you can use gtar with the --strip-path or --strip-components modifier.

Let's assume, your files pathnames are like these:
Code:
a/b/x
a/b/y
a/b/z
a/c/1
a/c/2
a/c/3

you can do

Code:
gtar xvf archive.tar --strip-components=2

and then you get all six files in the current directory.

If the tree depth is variable, I am not aware of any tar option you could use to extract the files the way you want.
# 4  
Old 10-08-2010
--strip-components is not a Solaris tar option, it is for gnu tar.

You can get gtar at Blastwave.org - An OpenSolaris Community Site

You have to setup pkgutil first, then
Code:
 pkgutil -yi gtar

# 5  
Old 10-08-2010
GNU tar has the option --transform , but I don't fully understand how it works.
May be something like this:

Code:
tar --transform 's#.*/\([^/]*\)$#\1#' -xvf <filename>

# 6  
Old 10-08-2010
Quote:
Originally Posted by jim mcnamara
--strip-components is not a Solaris tar option, it is for gnu tar.
Right, as I said, gtar.
Quote:
Originally Posted by jim mcnamara
gtar is also part of Solaris 10 as /usr/sfw/bin/gtar.

---------- Post updated at 14:03 ---------- Previous update was at 13:56 ----------

Quote:
Originally Posted by radoulov
GNU tar has the option --transform , but I don't fully understand how it works.
May be something like this:

Code:
tar --transform 's#.*/\([^/]*\)$#\1#' -xvf <filename>

Ah, interesting new switch! OpenSolaris' gtar supports this option too, as I just found out. A shorter way would be

Code:
gtar --transform 's/.*\///' -xvf <filename>

Unfortunately, the directories in the tar file get restored this way too.
# 7  
Old 10-08-2010
Thanks for all of the replies.

Perhaps this problem can be approached from a different angle.

Is there a way to use the cp command on solaris to take all of the files in the directories, and to copy them all to one directory?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Problem creating a tar ball in different directories

Hi all. I'm hitting a problem creating a tar archive in one directory from files located in a different directory. It fails when I replace the absolute paths with variables in the script but works if I just run tar on the cmdln. E.g. #!/bin/ksh BASE=$PWD STAGE=$BASE/stage LOG=$BASE/log... (4 Replies)
Discussion started by: user052009
4 Replies

2. Shell Programming and Scripting

Tar extract a multiple directories

i extract it through script, is there any way to script or automate to tar extract a tarfiles in multiple directories at once? Cannot open: No such file or directory tar: Error is not recoverable: exiting now for dir in `ls -d /tarfiles/*/ | sed 's/.$//'` do rm -f $dir/*.tar mv -f... (1 Reply)
Discussion started by: kenshinhimura
1 Replies

3. Shell Programming and Scripting

Extract a tar ball into multiple directories

#cat a BAC064DAL BAC063DAL BAC056PHX BAC066DAL BAC062PHX BAC062DAL BAC060DAL BAC058PHX BAC054PHX BAC051PHX # for i in `cat a` > do > tar xvf $a/$a*.tar* > done tar: /*.tar*: Cannot open: No such file or directory tar: Error is not recoverable: exiting now tar: /*.tar*: Cannot... (3 Replies)
Discussion started by: kenshinhimura
3 Replies

4. Shell Programming and Scripting

Archiving and moving files into directories, creating directories, etc.

how can i move "dataName".sql.gz into a folder called 'database' and then move "$fileName".tar.gz * .htaccess into a folder called 'www' with the entire gzipped file being "$fileName".tar.gz? Is this doable or overly complex. so mydemo--2015-03-23-1500.tar.gz > database -... (5 Replies)
Discussion started by: wyclef
5 Replies

5. UNIX for Dummies Questions & Answers

Do I need to extract the entire tar file to confirm the tar folder is fine?

I would like to confirm my file.tar is been tar-ed correctly before I remove them. But I have very limited disc space to untar it. Can I just do the listing instead of actual extract it? Can I say confirm folder integrity if the listing is sucessful without problem? tar tvf file1.tar ... (1 Reply)
Discussion started by: vivien_chu
1 Replies

6. Shell Programming and Scripting

Tar creating copies of files

I am trying to archive directories based on their last modified date. When I tar and compress the directory it makes copies of whats inside, I don't know how to fix this. Here is my code. #!/bin/bash #AUTODRUNDISABLE VERSION="0.2" cd /desired/directory/to/archive find . -type d -newermt... (3 Replies)
Discussion started by: jrymer
3 Replies

7. UNIX for Dummies Questions & Answers

Creating a Tar file while files are spooling

Hi I have done a search for this but couldn't find much on it. I am creating a tar file with the command below tar cvf /export/home/user/backup/*Will this is being created I have a job spooling to 5 texts files in the following directory /export/home/user/backup/STATS/ The tar files... (1 Reply)
Discussion started by: sgarvan
1 Replies

8. Shell Programming and Scripting

extract one file form .tar.gz without uncompressing .tar.gz file

hi all, kindly help me how to extract one file form .tar.gz without uncompressing .tar.gz file. thanks in advance bali (2 Replies)
Discussion started by: balireddy_77
2 Replies

9. UNIX for Dummies Questions & Answers

extract tar files without creating directory

I received a tar file of a directory with 50,000 files in it. Is it possible to extract the files in the tar file without first creating the directory? ie. Doing tar -xvf filename.tar extracts as follows: x directory/file1.txt x directory/file2.txt . . . I would like to avoid... (4 Replies)
Discussion started by: here2learn
4 Replies

10. UNIX for Dummies Questions & Answers

cant extract files from a tar file

hi everyone i have a tar file which was in AIX box. its 300mb. i cant untar in windowsxp home. I just get an empty folder with no files when i extract. i dont get any bad header or any such error. i am using IZARC which is a freeware. Not sure if i should try winzip or winrar. any help (2 Replies)
Discussion started by: bryan
2 Replies
Login or Register to Ask a Question