This is an interesting one.
What was the version of tar? Was it gnu tar?
I wonder, how did you create that archive?
I'm asking this because I was trying to reproduce the same situation and everything seems to be working fine:
$ tar -C /tmp/root3 -cvf test.tar .
./
./.config/
./.config/test
./.local/
./var/
./var/db/
./var/db/xbps/
or even like this
$ tar -cvf test2.tar root3/
root3/
root3/.config/
root3/.config/test
root3/.local/
root3/var/
root3/var/db/
root3/var/db/xbps/
No special options were needed. But, if I do it this way, then, there are definitely missing all dot directories:
$ tar -cvf test2.tar root3/*
root3/usr/
root3/usr/bin/
root3/usr/bin/xbps-uunshare
But this problem is not a tar's problem. That's only because "*" mask doesn't match dot files:
$ echo root3/*
root3/usr root3/var
For that purpose, you need to clearly add a dot:
$ echo root3/.*
root3/.config root3/.local
Thus, the solution might be
$ tar -cvf test2.tar root3/.* root3/*
root3/.config/
root3/.config/test
root3/.local/
root3/usr/
root3/usr/bin/
But, I'd rather stick to "-C dir/" option instead of relying on "*" mask in this case.
I'm asking this because I was trying to reproduce the same situation and everything seems to be working fine:
or even like this No special options were needed. But, if I do it this way, then, there are definitely missing all dot directories: But this problem is not a tar's problem. That's only because "*" mask doesn't match dot files: For that purpose, you need to clearly add a dot: Thus, the solution might be But, I'd rather stick to "-C dir/" option instead of relying on "*" mask in this case.