Schutz von Tar-Wildcards vor der Shell-Erweiterung
Um die korrekte Behandlung von tar
-Wildcards sicherzustellen und ungewollte Folgen zu vermeiden, müssen wir Techniken einsetzen, um die Wildcards vor der Shell-Erweiterung zu schützen. In diesem Abschnitt werden wir mehrere Methoden zur Erreichung dieses Ziels untersuchen.
Escaping von Sonderzeichen in Tar-Befehlen
Eine Möglichkeit, tar
-Wildcards vor der Shell-Erweiterung zu schützen, besteht darin, die Sonderzeichen, die die Shell zur Expansion verwendet, zu escapen. Dies kann durch Verwendung des Backslash-Zeichens (\
) erreicht werden, um die Sonderzeichen zu "escapen" und die Shell daran zu hindern, sie zu interpretieren.
Beispielsweise können Sie statt des Wildcards *.txt
das escapierte \*.txt
in Ihrem tar
-Befehl verwenden:
tar -cvf archive.tar \*.txt
Dadurch wird die Shell daran gehindert, das *.txt
-Wildcard zu expandieren, und stattdessen wird der literale String \*.txt
an den tar
-Befehl übergeben.
Verwendung von einfachen Anführungszeichen zur Wildcard-Schutz
Eine weitere effektive Methode zum Schutz von tar
-Wildcards vor der Shell-Erweiterung besteht darin, das Wildcardmuster in einfache Anführungszeichen ('
) zu setzen. Dies veranlasst die Shell, das gesamte Muster als literalen String zu behandeln, anstatt es zu expandieren.
tar -cvf archive.tar '*.txt'
Durch die Verwendung von einfachen Anführungszeichen wird die Shell keine Expansion auf das *.txt
-Wildcard ausführen, und der tar
-Befehl erhält das literale Muster als Argument.
Nutzung von doppelten Anführungszeichen zur Beibehaltung von Wildcards
Neben einfachen Anführungszeichen können Sie auch doppelten Anführungszeichen ("
) verwenden, um tar
-Wildcards vor der Shell-Erweiterung zu schützen. Doppelte Anführungszeichen bieten einen flexibleren Ansatz, da sie die Shell-Erweiterung einiger Sonderzeichen beibehalten, während die Wildcards dennoch geschützt werden.
tar -cvf archive.tar "*.txt"
In diesem Fall wird die Shell das *.txt
-Wildcard expandieren, aber die resultierende Dateiliste wird als einzelnes Argument an den tar
-Befehl übergeben, wobei das Wildcardverhalten beibehalten wird.
Kombinieren von Anführungs-Techniken für eine robuste Wildcard-Behandlung
Für maximale Flexibilität und Schutz können Sie die Verwendung von einfachen und doppelten Anführungszeichen kombinieren, um verschiedene Szenarien zu behandeln. Dieser Ansatz ermöglicht es Ihnen, bestimmte Teile des tar
-Befehls selektiv zu schützen, während die notwendige Shell-Erweiterung weiterhin möglich ist.
tar -cvf "archive.tar" '*.txt'
In diesem Beispiel ist der Dateiname "archive.tar"
in doppelten Anführungszeichen eingeschlossen, um eventuelle Sonderzeichen im Dateinamen zu beibehalten, während das Wildcard '*.txt'
in einfache Anführungszeichen eingeschlossen ist, um die Shell-Erweiterung zu verhindern.
Indem Sie diese Techniken verstehen und anwenden, können Sie tar
-Wildcards effektiv vor der Shell-Erweiterung schützen und so zuverlässiges und vorhersehbares Verhalten beim Arbeiten mit dem tar
-Befehl gewährleisten.