Create tar-file without folder strucure

ala picture ala · Aug 27, 2012 · Viewed 8.5k times · Source

I have to compress multiple files to one tar-File. As I have to repeat this for many files in many different folders I wrote a shell script and started it from a parent directory. The shell script contains multiple lines like the following:

tar -cf a/b/c/tarfile.tar a/b/c/*

This creates a tar-file in the specified folder but inside the tar-File the folder structure of a/b/c/ is still existent.

What I want is that all files in c/ are placed in tarfile.tar WITHOUT the folder structure a/b/c/. Is this possible?

Answer

twalberg picture twalberg · Aug 27, 2012

tar -cf a/b/c/tarfile.tar -C a/b/c . will switch to the directory a/b/c and read in the entire directory (the . - you could specify specific files as well, but a wildcard will not do what you're expecting). The -C <directory> <filelist> pattern can be repeated as necessary to process additional files from different locations.

Another possibility given your original example would be cd a/b/c; tar cf ../../../tarfile.tar *, but that doesn't give you the possibility to pull multiple files from different locations (of course you could still use -C, but the relative paths would have to be adjusted accordingly.