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.
Manche nutzen es, um einfach eine Reihe an Verzeichnissen zu erstellen.
Aber es gibt auch eine ganz einfache Anwendung, die jeden Tag hilft, Erstellung von Backup-Dateien:
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}
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
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 :
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 :