I have a directory setup like the following:

folder_x
file.y
file.z

I would like to create a tar file so that when it's extracted the structure will look something like this:

dir_q/folder_x
dir_q/file.y
dir_q/file.z

How could I get this to work by using tar? For reference, the current command that I'm using is:

tar -czf archive.tar.gz file.y file.z folder_x
link|improve this question

75% accept rate
feedback

2 Answers

I've never used the --transform option, but I gather it would do what you need:

tar -czf archive.tar.gz --transform 's/^/dir_q/' file.y file.z folder_x

link|improve this answer
Hmm, it doesn't seem to be doing it properly: file.z -> dirfile.z and dirfolder_x. I'll play around with the regex too see if I can get it the way I want it. – Tim Cooper Jan 25 '11 at 19:40
feedback

If you don't mind creating the new directory...

mkdir dir_q;tar -C $_ -xzvf archive.tar.gz

alternatively, make a new directory, untar the file to that directory, then re-tar it from the parent directory to include it's name in the extracted version. That way you do not have to remember some super long invocation.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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