Shell-Tricks

Alte Shell-Junkies werden vermutlich darüber gähnen, doch den meisten Einsteigern dürfte diese Funktionalität unbekannt sein. Möchte man größere Verzeichnishierarchien in der Shell anlegen, so kann man sich von der Shell viel Arbeit abnehmen lassen. Am einfachsten mit einem Beispiel verdeutlichen.

Ich möchte für Virtuelle Hosts meines Apache-Servers eine Verzeichnishierarchie erstellen, die am Ende so aussehen soll:

/var/www/vhosts/www.foo.com
/var/www/vhosts/www.foo.com/html
/var/www/vhosts/www.foo.com/html/cgi-bin
/var/www/vhosts/www.foo.com/log
/var/www/vhosts/www.bar.com
/var/www/vhosts/www.bar.com/html
/var/www/vhosts/www.bar.com/html/cgi-bin
/var/www/vhosts/www.bar.com/log
/var/www/vhosts/www.baz.com
/var/www/vhosts/www.baz.com/html
/var/www/vhosts/www.baz.com/html/cgi-bin
/var/www/vhosts/www.baz.com/log

In der zsh sowie in der bash kann ich das mit einem einzigen Befehl erledigen:

mkdir -p /var/www/vhosts/www.{foo,bar,baz}.com/{log,html/cgi-bin}

Ja, das ist alles. Die mühselige Arbeit erledigt die Shell. Nutzer der zsh können sich mit der Tab-Taste vor dem Ausführen des Befehls anzeigen lassen, wie die Shell diesen Befehl expandiert. Um die expansion wieder rückgänging zu machen, genügt ein Druck auf ^_. (Das ^ steht für die Control/Steuerung-Taste)

Leave a Reply

Your email address will not be published.