Skip to content

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 M{e,a}{i,y}er
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{,.bak}
cp datei{,von-heute}.txt

Trackbacks

Confluence: Romasanta, Francisco Villar am : Tipps und Tricks

Vorschau anzeigen
Links Bash-Brace-Expansion create-tarball-from-a-l

Confluence: Romasanta, Francisco Villar am : BASH

Vorschau anzeigen
Links: Bash – Bedingte Ausführung mit if und die w

blog.tuxinaut.pyxis.uberspace.de am : PingBack

Vorschau anzeigen

Tuxinauts Blog am : Clonezilla Image auf eine Partition die anders heißt zurückspielen

Vorschau anzeigen
INIT Vor längerer Zeit, musste ich die Datenpartition unser MSSQL Datenbank auf ein virtuelles System kopieren. Das war mittels Clonezilla schnell erledigt. Das Problem bestand jetzt darin, die Partition die im Original sda2 hieß auf die Partition vdb1...

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Philipp Beckers am :

*Hm... ja, es gerät immer mal wieder in Vergessenheit. :-)
Danke fürs Erinnern.

Gruß Philipp

Alexander Skwar am :

*Danke für den Tipp. Brace Expansions sind in der Tat ein SEHR nützliches Hilfsmittel bei der täglichen Arbeit.

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 :

*Mit dem "insbesondere" wollte ich ausdrücken, dass der Mechanismus auch in anderen Shells funktioniert. Da ich hier aber nur die Bash einsetze, habe ich auch nur mit der getestet.

Alexander Skwar am :

*Jo, kein Stress :-) Die meisten Leser Deines Blogs werden, so sie überhaupt *nix nutzen, vermutlich Linux nutzen und da dann vermutlich am ehesten bash. Würde ich mal so vermuten ;-)

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 :

*Da muss ich mit einem "jein" kontern.

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 :

*Wir haben auf zsh standardisiert :-)

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 :

*Das könnte mich schon "fast" neidisch machen ;-)

Ich kenne eine grosse Menge an Vorteilen, die die zsh bietet. Nur bringen mir die nichts, wenn ich sie nicht einsetzen kann.

Finn am :

*Hui vielen Dank!
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! :-)

Sebastian am :

*Ab und an mal ein Gentoo nach Anleitung installieren, da bleibt so etwsa in Erinnerung ;-)

Dirk Deimeke am :

*Es reicht ein man bash zu machen. Die meisten sind sehr überrascht, wenn sie mal reinlesen. :-)

Kommentar schreiben

Gravatar, Favatar, Pavatar, Identica, Twitter, MyBlogLog Autoren-Bilder werden unterstützt.
BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen