When I do the following:
tar czvf ../myarchive.tar.gz ./
I get a single (annoying) root folder in my tar archive:
How do I remove this awful period when creating the archive?
The dot appears because tar creates the path structure the way you give in the arguments. So as you have given . as the source, the archive also is created in the same structure.
You can try this (note: this won't match hidden files):
tar -czvf ../myarchive.tar.gz *
Updating with information from the n.st's comment and zhoux's answer
tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./
You don't.
name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"
(Note: this doesn't work if your shell has current directory symbolic link tracking turned on and the current directory is accessed via a symbolic link.)
Yes, this isn't what you asked, but this is what you should do. Archives that expand a lot of files in the current directory are annoying: it puts the burden of creating a target directory for the file on each person who unpacks the archive, and if they accidentally unpack them in a non-empty directory, it's hard to clean up. Most of the time, an archive should create a single toplevel directory whose name is the base name of the archive.
tar xzvf archive.tar.gz && mv archive/* /output vs. unzip archive.zip -d /output)
better add ^ before the preceding .
tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./
OR, all "/" in the full pathname inside the archive will be removed unless "/" is the end of the full pathname.
--transform/--xform, as suggested by Magnus:tar -cf /path/to/output.tar -C /path/to/input-directory . --xform='s!^\./!!'