Klammern sind keine Platzhaltermuster. Überprüfen Sie die Dokumentation der Bash-Erweiterungen : Klammern werden sehr früh im Prozess erweitert, und Platzhaltermuster werden im letzten Schritt erweitert¹.
Zunächst besteht der Befehl aus zwei Wörtern echo
, *{1..12}
. Nach Klammer Erweiterung enthält der Befehl 13 Worte: echo
, *1
, *2
, ..., *12
. Dann werden Platzhaltermuster erweitert. *1
Erweitert die Liste der Dateinamen 1
, die auf enden und nicht nur, file1
sondern auch file11
(die anschließend in lexikografischer Reihenfolge sortiert wird) enthalten. Erweitert *2
sich ebenfalls zu file12
und file2
(in dieser Reihenfolge). So erhalten Sie echo
, file1
, file11
, file12
, file2
, und dann die anderen Platzhalter , dass eine einzelne Datei angepasst: file3
, file4
, ..., file12
.
¹ Vorletzter, wenn Sie der Beschreibung des Handbuchs folgen, aber „Entfernen von Anführungszeichen“ nicht wirklich eine Sache ist - Anführungszeichen werden vor dem Erweiterungsprozess analysiert.
Gilles 'SO - hör auf böse zu sein'
quelle