Alles, was ich lese, besagt, dass zum Ausschließen .svn
und .htaccess
anderer versteckter Dateien beim Erstellen eines Teerarchivs das --exclude=".*"
Muster verwendet werden soll.
Wenn ich es versuche, bekomme ich ein leeres Archiv. Wenn ich die --exclude
lange Option weglasse, wird alles archiviert.
Hier ist der vollständige Befehl, den ich verwende:
tar -czvf ../_migrate/archive_2012-05-07.tgz --exclude=".*" ./*
Ich habe auch diese Variante ausprobiert, ohne Unterschiede in den Ergebnissen:
tar -czvf ../_migrate/archive_2012-05-07.tgz --exclude=".?*" ./*
.
und alles durch es erreichbar ist ...Antworten:
Sie scheinen GNU zu verwenden
tar
. Der Mustervergleich in GNUtar
funktioniert auf dem gesamten Pfad und hört nicht bei/
Zeichen auf. Da Sie./
für Ihre Dateiliste verwenden, bedeutet dies, dass jede einzelne Datei übereinstimmt,./*
die auch übereinstimmt.?*
. Ich würde--exclude='.[^/]*'
vielleicht so etwas versuchen .quelle
tar -czvf ../_migrate/archive_2012-05-07.tgz exclude=".*" *
das Problem basierend auf Ihrer Antwort zu beheben. Ich bin überrascht, dass es einen Unterschied macht, da es in meinen Gedanken*
dasselbe ist wie./*
, aber anscheinend wird das '. /' Zumtar
Pfad hinzugefügt und so fällt alles unter das Muster. Um ganz klar zu sein, das Ausschlussmuster war in Ordnung, es ist das Dateilistenmuster, das das Problem verursacht hat.Ihr Muster schließt "." Aus. Dies ist das Verzeichnis, das Sie archivieren möchten. Verwenden Sie stattdessen ".? *" Als Muster.
quelle
.*
wird immer mit jeder Datei übereinstimmen, die enthalten sein würde, da Sie Dateien von verwenden.
(die sogar für sich selbst übereinstimmen.*
).Sie müssen nichts tun, um die von Ihnen erwähnten Dateien auszuschließen. Sie werden ohnehin nicht vom Glob abgeglichen. Der
*
Glob stimmt nicht mit Dateien mit Punktpräfix überein, es sei denn, Sie aktivieren diese Funktionalität manuell (durchdotglob
oder das Äquivalent Ihrer Shell).quelle
*
versteckte Dateien nicht übereinstimmen, esdotglob
sei denn, dies ist festgelegt. Unterverzeichnisse können dennoch versteckte Dateien enthalten, die glücklich geteert werden, wenn keine Ausschlussregel verwendet wird.