MACNOTES

Veröffentlicht am  29.11.08, 10:05 Uhr von  

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:
[singlepic id=1948 w=400]
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.
[singlepic id=1950 w=400]
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.
[singlepic id=1949 w=400]
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.

 Und wie ist deine Meinung?  Schreib uns einfach!

 7 Kommentar(e) bisher

  •  syn sagte am 29. November 2008:

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

    Antworten 
  •  Vincent sagte am 30. November 2008:

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

    Antworten 
  •  Richie sagte am 30. November 2008:

    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…

    Antworten 
  •  Stefan sagte am 30. November 2008:

    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.

    Antworten 
  •  rj sagte am 1. Dezember 2008:

    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?

    Antworten 
  •  spochtsfroind sagte am 22. Dezember 2008:

    @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

    Antworten 
  •  abeing sagte am 27. März 2013:

    Das mit tree funktioniert wunderbar. Einfach mit macports installieren: “sudo port install tree”
    und dann in ein Verzeichnis wechseln und einfach “tree” eingeben. -d wenn man nur ordner sehen will

    Antworten 

Kommentar verfassen

 0  Tweets und Re-Tweets
       0  Likes auf Facebook
         0  Trackbacks/Pingbacks
          Werbung
          © 2006-2013 MACNOTES.DE. Made with insanely great for all things Mac. Apple.de