Was kann ich mit dem Befehl “open” im Terminal machen?

Terminal Icon

Nachdem ich im Beitrag Wie kann ich den Library-Ordner öffnen? in der Geek-Methode beschrieben hatte wie man mit dem Befehl open ein Finder-Fenster öffnen kann, haben mich mehrere Anfragen erreicht, wieso die Angabe von . ausreicht, um das bewusste Fenster zu öffnen. Daher heute eine etwas genauere Beschreibung und Beispiele, was man mit dem Befehl open im Terminal so machen kann.

Wie kann ich Fenster im Finder öffnen?

Um ein Fenster im Finder zu öffnen, übergeben wir dem Befehl open einfach den Pfad des Verzeichnisses welches wir in einem Finder-Fenster dargestellt bekommen möchten:

open ~/Documents/

Öffnet das Fenster “Dokumente”. Die Angabe des Pfades ist wie folgt zu verstehen: Die Zeichenkombination ~/ bezeichnet für ein *NIX-System (also auch für OS X) das “Heimatverzeichnis” des aktuellen Benutzerkontos, also /Users/[Kurzname des Benutzerkontos] (im Finder der Ordner mit dem Haus). Wie der Pfad im aktuellen Fall aussieht, kann man einfach mit dem Befehl echo $HOME (bitte Gross-/Kleinschreibung beachten) in einem Terminal-Fenster nachsehen. Anschliessend folgt der Name des Ordners Documents (im Finder auf deutsch mit “Dokumente” dargestellt).

Das funktioniert mit allen Pfaden im System, auf die das angemeldete Benutzerkonto Leserechte hat.

Kann ich auch Dateien mit dem open-Befehl öffnen?

Selbstverständlich. Nehmen wir an, dass im Ordner “Dokumente” ein Verzeichnis namens “Ideen” existiert und in diesem eine Datei “ToDo.txt”, dann würde der Befehl open ~/Documents/Ideen/ToDo.txt die Datei ToDo.txt normalerweise mit dem Programm TextEdit öffnen. Wäre die Datei vom Programm Pages erstellt worden, dann hiesse sie ToDo.pages und würde mit dem Programm geöffnet werden, mit dem sie erstellt wurde, also Pages.

Woher weiss der open-Befehl welches Programm zu benutzen ist?

Um herauszubekommen welches Programm zum Öffnen eines bestimmten Dateityps benutzt werden soll, konsultiert der Befehl open die systemweite Datenbank in der hinterlegt wurde, welches Programm für welche Dateitypen “zuständig” ist. Normalerweise immer das Programm, mit dem die fragliche Datei erstellt wurde. Problematisch wird es nur bei den Dateitypen, die von mehreren Programmen geöffnet werden könnten. Dateien mit der Endung .txt werden normalerweise mit TextEdit geöffnet, es sei denn, ein später installiertes Programm hat diese Einstellung geändert, oder der/die Benutzer(in) hat diese Änderung im Finder selbst vorgenommen. (Darüber werde ich in einem anderen Beitrag schreiben.)

Kann ich dem open-Befehl auch “sagen” welches Programm er benutzen soll?

Wie eben erwähnt, werden Textdateien normalerweise mit TextEdit geöffnet. Ich benutze aber für reine Textdateien wesentlich lieber das Programm TextMate, daher existiert die Möglichkeit dem Befehl open mitzuteilen, mit welchem Programm die angegebene Datei geöffnet werden sollte. Zum Beispiel öffnet der Befehl

open -a TextMate ~/Documents/Ideen/ToDo.txt

die Datei ToDo.txt mit dem Programm TextMate. Die Option -a (als Merkhilfe “Applikation”) teilt dem Befehl open mit, dass die angegebene Datei mit dem genannten Programm geöffnet werden soll.

Bonus: Warum funktioniert der Punkt?

Der Befehl open . öffnet das aktuelle Verzeichnis in einem Finder-Fenster und das funktioniert ganz einfach deswegen, weil ein unsichtbares Verzeichnis namens . in jedem Verzeichnis existiert. Wenn wir in einem Fenster des Programms Terminal den Befehl ls -a eingeben, dann finden wir am Anfang der Auflistung ein Verzeichnis . und ein Verzeichnis .., ersteres zeigt auf das aktuelle Verzeichnis und letzteres auf das Verzeichnis “darüber”.

Wenn wir uns also im Verzeichnis Documents/Ideen befinden, dann öffnet der Befehl open .. ein Finder-Fenster in dem der Ordner “Dokumente” angezeigt wird. Es handelt sich um ein Verzeichnis, und für Verzeichnisse fühlt sich das Programm Finder “zuständig”.

Speak Your Mind

*