Create a tar archive of the current directory without preceding period

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 and check:

tar -czvf ../myarchive.tar.gz *

Updating the answer with help from the comment by n.st

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.

Tags:

Tar