Anzeige

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

TerminalSelige 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 Directorys 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'

Die Ausgabe sieht dann folgendermaßen aus:

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 .profiles 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.

Richard Joos
Autor:
Datum:
Kategorie:
Tags:
Richard Joos, Chefredakteur
29.11.2008, 10:05 Uhr
Tipps
, , , ,  

6 Kommentare

  1. Profilbild

    29.11.08, 13:12 Uhr, #1

    syn meint:

    Alternativ kann man sich auch ‘tree’ aus den MacPorts holen.

  2. Profilbild

    30.11.08, 11:43 Uhr, #2

    Vincent meint:

    Danke für den Tipp, gefällt.
    Was muss ich ändern, damit .hidden files nicht angezeigt werden?

  3. Profilbild

    30.11.08, 12:11 Uhr, #3

    Richie meint:

    Das weiss ich nicht, die Frage stellte sich mir nun auch nicht wirklich – wenn ich auf der Konsole bin, ist es in der Regel so, dass ich grade eben auch Systemfiles angezeigt haben will…

  4. Profilbild

    30.11.08, 20:00 Uhr, #4

    Stefan meint:

    Ich würde eher empfehlen den Alias in die Datei “~/.bashrc” anstatt “~/.profile” einzutragen!
    Dann braucht es auch kein Ein- und Ausloggen, damit das Alias funktioniert.

  5. rj

    01.12.08, 11:10 Uhr, #5

    rj meint:

    Ein/Ausloggen brauchts auch unter .profile nicht, das Oeffnen einer neuen Shell reicht voellig aus. .bashrc stellt *allen* Usern das Alias zur Verfuegung, schaetze ich? Das waere imo eher fuer das Fuer und Wider interessant – will ich, dass ich mit jedem angemeldeten User die Shell-Modifikationen verfuegbar habe, kann es im Gegenteil sein, dass da irgendwer damit arbeitet, der das eben nicht oder individuell will?

  6. Profilbild

    22.12.08, 11:57 Uhr, #6

    spochtsfroind meint:

    @vincent: find . ! -name ‘\.*’ -print | sed -e ‘s;[^/]*/;|____;g;s;____|; |;g’
    @rj: Das mit .bashrc für alle Benutzer ist nicht unbedingt richtig. Du kannst mal “man bash” im Terminal eingeben und unter “INVOCATION” nachsehen, welche Profil-Dateien wann eingelesen werden


Anzeige

Dein Kommentar:

Mit einem Facebook-Account kannst du dich auch auf Macnotes anmelden:
Connect with Facebook


  

Mein Macnotes

Daten merken

Neu hier? Ein Macnotes-Account bringt dir viele Vorteile

Anzeige
blogoscoop