Avec un caractère générique, cela ne fonctionnera pas. Vous devez préciser. (répertoire courant) si vous voulez dire répertoire complet, y compris les fichiers cachés. Vous pouvez faire
tar -cvpzf test.tgz .
La réponse est que le *
Le caractère générique est géré par le shell et il ne s'étend tout simplement pas aux éléments commençant par un point. L'autre joker ?
ne s'étend pas non plus aux choses qui commencent par un point. Merci à Keith d'avoir souligné que c'est le shell qui fait l'expansion et que cela n'a donc rien à voir avec tar
.
Si vous utilisez shopt -s dotglob
alors l'expansion inclura des choses comme .filename
. Merci à Andy.
Utilisez shopt -u dotglob
pour l'éteindre.
Commutation du dotglob
l'option ne change pas ls
lui-même. Au contraire, cela change simplement le comportement d'expansion comme indiqué dans quelque chose comme ls *
.
Edit :Mes recommandations sont dans un commentaire ci-dessous.
Vous pouvez utiliser :
tar -cvpzf test.tgz * .??*
Mais, cela ne fonctionne que pour les fichiers cachés avec des noms> 2 (pour empêcher '.' et '..')