rj, den 29. November 2008

Terminal, Mac OS X: Baumansicht mit Tree für Ordner und Files

Baum-Ausgabe im Terminal
Baum-Ausgabe im Terminal, Screenshot

Selige DOS-Zeiten kannten den „Tree“-Befehl, der Verzeichnisse und Dateien als Baumstruktur im Terminal ausgab. Mit einem etwas komplizierten Befehl kann man die Baumansicht auch im Mac-Terminal nachbauen, via Alias-Definition auch simpel mit einem neuen Befehl.

Best of both worlds, heißt es von Mac OS X: eine intuitive GUI und ein mächtiges Terminal, wenn man denn eines will. Schnell eine Übersicht über Verzeichnisbäume erhielt man unter DOS seinerzeit mit „tree“, das eine ascii-basierte Baumansicht des aktuellen Verzeichnisses und seiner Unterverzeichnisse ausgab. Mit einem etwas komplizierten Befehl kann der Ersatz für längere dir/cd/ls -al-Orgien auch unter Mac OS X nachgebaut werden.

find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

Der Befehl wurde bei murphymac konstruiert, dort finden sich auch ausführbare Shellscripte für denselben Zweck. Wir wollen den Anlass nutzen, um uns Alias-Befehle auf der Shell einzurichten – merken kann man sich unsere konkrete lange Befehlsfolge nicht. Der Zeitspareffekt der Konsole ist auch dahin, wenn man erst per Copypaste einen Befehl übernimmt – in der Zeit hat man statt „Tree“ auch Spotlight verwendet.

Also legen wir eine Datei .profile im User-Homeverzeichnis an, falls eine solche nicht existiert. Dafür öffnen wir den Texteditor unserer Wahl. Dort definieren wir das Alias, indem wir folgende Befehlszeile in die Datei schreiben:

alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"

Damit wird der Befehl „tree“ definiert, der nach dem Speichern der .profiles den komplexen Scriptbefehl aufruft.

Beim Speichern meldet sich der Editor – in diesem Fall Textmate – mit der Frage, ob er wirklich eine versteckte Datei anlegen soll. Das soll er, nach Drücken von ‚Use „.“‚ stehen alle in der .profile definierten Aliasbefehle in jeder Konsole zur Verfügung, die auf dem Mac gestartet wird.

Natürlich lassen sich so auch andere Aliase für häufig verwendete, tippintensive Befehlsfolgen definieren. Im Vorfeld sollte man nur prüfen, ob der neu definierte Befehl nicht bereits existiert und so durch eine Alias-Zuweisung nicht mehr zur Verfügung steht.


Ähnliche Nachrichten