Tout ce que je lis dit que pour exclure .svn
et .htaccess
et d'autres files cachés lors de la création d'une archive tar, utilisez le --exclude=".*"
.
Quand j'essaie, j'obtiens une archive vide. Quand --exclude
option --exclude
long, tout est archivé.
Voici la command complète que j'utilise:
tar -czvf ../_migrate/archive_2012-05-07.tgz --exclude=".*" ./*
J'ai aussi essayé cette variante, sans différence de résultats:
tar -czvf ../_migrate/archive_2012-05-07.tgz --exclude=".?*" ./*
Vous semblez utiliser GNU tar
. La correspondance de motifs dans GNU tar
fonctionne sur tout le path et ne s'arrête pas à /
caractères. Comme vous utilisez ./
pour votre list de files, cela signifie que chaque file correspondra à ./*
qui correspond également à .?*
. Je voudrais essayer quelque chose comme --exclude='.[^/]*'
Peut-être.
Votre model exclut ".", Qui est le directory que vous essayez d'archiver. Utilisez ".? *" Comme motif à la place.
.*
correspondra toujours à n'importe quel file qui serait inclus, comme vous utilisez des files .
(qui même par lui-même correspond .*
).
Vous n'avez pas besoin de faire quoi que ce soit pour exclure les files que vous mentionnez, ils ne seront pas appariés par le glob de toute façon. Le *
glob ne correspond pas aux files préfixés par des points, sauf si vous activez cette fonctionnalité manuellement (via dotglob
ou l'équivalent de votre shell).