Brace Expansion ...
Viele kennen die Brace Expansion, einen Mechanismus von Shells, insbesondere der GNU Bash gar nicht.
Brace Expansion lässt sich nicht so leicht übersetzen, vielleicht am besten mit Klammererweiterung.
{a,b,d} erzeugt a b d, dieser Term wird dort ersetzt, wo er eingesetzt wird ab{a,b,d} ergibt aba abb abd. {1..10} macht 1 2 3 4 5 6 7 8 9 10, {01..04} entsprechend mit führenden Nullen 01 02 03 04. Das geht auch mit Inkrementen {1..9..2} entspricht den ungeraden Zahlen 1 3 5 7 9 oder bei Buchstaben {a..f} macht a b c d e f und {a..f..2} ergibt a c e. Das ganze ist verschachtelbar {a{1,2},c,e} erzeugt a1 a2 c e.
Manche nutzen es, um einfach eine Reihe an Verzeichnissen zu erstellen.
mkdir cd{01..10}
mkdir /home/{dirk,jupp,hans}/{.ssh,vorlagen,arbeit}
Aber es gibt auch eine ganz einfache Anwendung, die jeden Tag hilft, Erstellung von Backup-Dateien:
cp datei{,von-heute}.txt
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Philipp Beckers am :
Danke fürs Erinnern.
Gruß Philipp
Dirk Deimeke am :
Grüsse zurück.
Alexander Skwar am :
Das gibt's übrigens nicht nur bei der Bash, sondern, eingeschränkt, auch bei Korn Shell (ksh) (da geht {1..2} nicht) und natürlich auch bei der zsh.
Dirk Deimeke am :
Alexander Skwar am :
Von daher ist's ganz sicher nicht falsch, wenn bash so explizit erwähnt wird. Die paar zsh User wissen, was ihre Shell so alles (besser *G*) kann (sonst würden sie die Shell ja nicht nutzen…) — und ksh. Nuja. Auch da ganz bestimmt eine bewusste Entscheidung G
Gruss
Alexander
Dirk Deimeke am :
Im Firmenumfeld hast Du oft nicht die Wahl.
Das ist auch der Grund, warum ich mich mit der ZSH nicht auseinandersetze. Ich versuche lieber eine Shell gut zu beherrschen und kann das Wissen dann auch überall anwenden.
Alexander Skwar am :
Einer der Gründe: Viel besseres Handling der History.
Bei der Bash ist's ja so, das nur die History der zuletzt geschlossenen Bash überlebt. Loggt sich also Admin A um Zeit t1 ein und zum Zeitpunkt t4 aus und loggt sich Admin a' zu t2 ein und t3 aus, dann ist, zum Zeitpunkt t5, in der Bash History nichts von dem zu sehen, was a' gemacht hat. (t1 < t2
Dirk Deimeke am :
Ich kenne eine grosse Menge an Vorteilen, die die zsh bietet. Nur bringen mir die nichts, wenn ich sie nicht einsetzen kann.
Finn am :
Das habe ich doch schon einmal irgendwo gesehen, nur wusste ich nicht so recht, wonach ich suchen sollte. Und plötzlich spuckt mein Feedreader solch nützlichen Kram aus, danke!
Dirk Deimeke am :
Freut mich, wenn Du etwas damit anfangen kannst.
Sebastian am :
Dirk Deimeke am :