Quand je fais ce qui suit:
tar czvf ../myarchive.tar.gz ./
Je reçois un seul dossier racine (ennuyeux) dans mon archive tar:
Comment supprimer cette horrible période lors de la création de l'archive?
Quand je fais ce qui suit:
tar czvf ../myarchive.tar.gz ./
Je reçois un seul dossier racine (ennuyeux) dans mon archive tar:
Comment supprimer cette horrible période lors de la création de l'archive?
Réponses:
Non.
name=${PWD##*/}
cd ..
tar czf "$name.tar.gz" "$name"
(Remarque: cela ne fonctionne pas si votre shell a activé le suivi des liens symboliques du répertoire actuel et que le répertoire actuel est accessible via un lien symbolique.)
Oui, ce n'est pas ce que vous avez demandé, mais c'est ce que vous devez faire. Les archives qui développent un grand nombre de fichiers dans le répertoire actuel sont ennuyeuses: cela met la charge de créer un répertoire cible pour le fichier sur chaque personne qui décompresse l'archive, et si elles les décompressent accidentellement dans un répertoire non vide, il est difficile de nettoyer. La plupart du temps, une archive doit créer un répertoire de premier niveau unique dont le nom est le nom de base de l'archive.
tar xzvf archive.tar.gz && mv archive/* /output
vs unzip archive.zip -d /output
)
Le point apparaît car tar
crée la structure du chemin comme vous le donnez dans les arguments. Donc, comme vous l'avez donné . en tant que source, l'archive est également créée dans la même structure.
Vous pouvez essayer ceci et vérifier:
tar -czvf ../myarchive.tar.gz *
Mise à jour de la réponse avec l'aide du commentaire de n.st
tar --xform s:'./':: -czvf ../myarchive.tar.gz ./
*
glob ne correspondra pas aux fichiers cachés.
mieux vaut ajouter ^ avant le précédent.
tar --xform s:'^./':: -czvf ../myarchive.tar.gz ./
OU, tous les "/" dans le chemin d'accès complet à l'intérieur de l'archive seront supprimés sauf si "/" est la fin du chemin d'accès complet.