Mit Wildcard wird es nicht funktionieren. Musst du angeben. (aktuelles Verzeichnis), wenn Sie das vollständige Verzeichnis einschließlich versteckter Dateien meinen. Das können Sie tun
tar -cvpzf test.tgz .
Die Antwort ist, dass der *
Wildcard wird von der Shell gehandhabt und erweitert sich einfach nicht auf Dinge, die mit einem Punkt beginnen. Der andere Platzhalter ?
erweitert sich auch nicht auf Dinge, die mit einem Punkt beginnen. Danke an Keith für den Hinweis, dass es die Shell ist, die die Erweiterung durchführt, und daher nichts mit tar
zu tun hat .
Wenn Sie shopt -s dotglob
verwenden dann enthält die Erweiterung Dinge wie .filename
. Danke an Andy.
Verwenden Sie shopt -u dotglob
ausschalten.
Umschalten der dotglob
Option ändert ls
nicht selbst. Vielmehr ändert es nur das Expansionsverhalten, wie es in etwas wie ls *
gezeigt wird .
Bearbeiten:Meine Empfehlungen sind in einem Kommentar unten.
Sie können Folgendes verwenden:
tar -cvpzf test.tgz * .??*
Dies funktioniert jedoch nur für versteckte Dateien mit Namen> 2 (um '.' und '..' zu verhindern)