Ich bin auf Globbing-Muster und Wildcards gestoßen und von besonderem Interesse für mich [!]
.
Dieses Konstrukt ähnelt dem
[!]
Konstrukt, stimmt jedoch nicht mit Zeichen in den Klammern überein, sondern mit jedem Zeichen, sofern es nicht zwischen[
und aufgeführt ist]
.
rm myfile [!192]
Ich glaube, dass die oben genannten Dateien alle / alle Dateien entfernen werden, mit Ausnahme aller / aller Dateien, deren Name 192 enthält.
Ich bin jedoch besorgt über die ordnungsgemäße Verwendung mit einer Dateierweiterung und insbesondere über mehrere Bedingungen.
Was wäre die richtige Syntax in einer solchen Situation?
rm myfile [!.gif .csv. mp3]
oder
rm myfile [!.gif !.csv !.mp3]
Ich mache mir Sorgen, dass der Punkt möglicherweise falsch platziert wird und daher jede Datei mit einem .
(was wäre sicherlich eine davon?) Dann manipuliert wird, wenn ich versuchen möchte, bestimmte Dateien zu manipulieren.
Dieses Konstrukt ähnelt dem [ ]
Konstrukt, stimmt jedoch nicht mit Zeichen in den Klammern überein, sondern mit jedem Zeichen, sofern es nicht zwischen [
und aufgeführt ist ]
.
(zitiert aus http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm )
Jetzt; für mich bedeutet das, dass dann ein Singular !
ausreicht und alle Werte darin innerhalb des Bereichs enthalten sind.
[!]
es ähnlich, aber nicht ähnlich ist[!]
^
die exakt gleiche Bedeutung wie hat !
in diesem Zusammenhang daher [^a]
schließt a
genau wie [!a]
tut: Wenn das erste Zeichen nach dem [a ist! oder a ^ dann wird jedes nicht eingeschlossene Zeichen abgeglichen. ( man bash
)
rm myfile [!192]
entfernen wird myfile
nicht genannt, sowie jede Einzelzeichendatei 1
, 9
oder 2
.
ls my-pattern
oderecho my-command
, um zu überprüfen, ob das Globbing wie gewünscht ausgeführt wird, bevor Sie esrm