Tar dereference only 1 level

Bart van Heukelom asked:

I use the following pseudo-script to create a TAR of my installed software

mkdir tmp
ln -s /path/to/app1/bin              tmp/app1
ln -s /and/path/going/to/the-app-2   tmp/app2
tar -c --dereference -f apps.tar tmp

I need the --dereference option here to follow the links I just made in tmp. The reason I make the links in the first place is to store the directories with a different name in the archive than they have on the filesystem.

Until now it has worked fine. However, I now have the situation that /path/to/app1 also contains links, and those I don’t want to follow.

Is this possible with some changes to the tar command? Or do I need to completely switch around the way I build the archive?

My answer:


Do you really need the directory structure in the tarball to be different than it is on disk?

If not, then you can just tar them up as-is:

tar -cf file.tar /path/1 /path/2

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.