Hat die Befehlszeile eine Möglichkeit, eine empfohlene Liste der Programme abzurufen, die zum Öffnen einer bestimmten Datei verwendet werden, basierend auf dem Dateityp? Zum Beispiel hätte eine .pdf
Datei eine open with...
Empfehlung mit den Programmen Evince
und Document Viewer
.
Ich benutze die Befehlszeile für die meisten Dinge, aber manchmal vergesse ich den Namen eines Programms, das ich zum Öffnen eines bestimmten Dateityps verwenden möchte.
Übrigens benutze ich Ubuntu 13.10.
Pro-Tipp
Dank der unten ausgewählten Antwort von @slm habe ich das folgende Bash-Skript in einer Datei mit dem Namen erstellt openwith.sh
:
xdg-mime query default $(xdg-mime query filetype $1)
Als Alias hinzufügen oder direkt als openwith
Befehl ausführen .
gnome-open file
. Ich habealias o='gnome-open'
meiner.bashrc
Einfachheit halber hinzugefügt .gnome-open
funktioniert ähnlich wiexdg-open
.gvfs-open
. Frage Was kann ich anstelle von gnome-open verwenden? von ubuntu fragen .Antworten:
Es gibt keinen Befehl, den ich jemals gesehen habe, der als "Öffnen mit ..." fungiert, aber Sie können den Befehl verwenden
xdg-open <file>
, um eine bestimmte<file>
Datei in der Anwendung zu öffnen , die diesem bestimmten Dateityp zugeordnet ist.Beispiele
Öffnen einer Textdatei:
Dies führt dazu, dass die Datei
tstfile.txt
geöffnet wird ingedit
:Öffnen eines LibreOffice Writer-Dokuments:
Das Ergebnis ist, dass die Datei
tstfile.odt
in Writer geöffnet wird:Welche Apps werden verwendet?
Sie können
xdg-mime
das System abfragen, um herauszufinden, welche Anwendungen einem bestimmten Dateityp zugeordnet sind.Dies ist eine 2-Stufen-Operation. Zuerst frage ich nach dem MIME-Typ einer bestimmten Datei
xdg-mime query filetype tstfile.txt
, die zurückgegeben wirdtext/plain
. Dies wird dann verwendet, um eine weitere Suche durchzuführen, um die Liste der Anwendungen zu ermitteln, die diesem MIME-Typ zugeordnet sind. Wie Sie oben sehen können, habe ich 2 Apps zugeordnetgedit
undcalibre
für.txt
Dateien.Mit können Sie auch
xdg-mime
die Assoziationen ändern. Sehen Sieman xdg-mime
für weitere Details.quelle
okular
, um PDFs anzuzeigen, aber Ihr Beispiel oben zeigt nur,evince
wenn ich es in einer PDF- Datei ausführe..txt
werden beispielsweise mit gedit und calibre verknüpft..desktop
Dateien für die Programme haben, die ich aufgelistet haben möchte? Wenn ich beispielsweise das Skript für eine.pdf
Datei ausführe , wird es zurückgegebenevince.desktop
, obwohl ich es auch ausführen kannokular
.Wenn Sie hauptsächlich auf der Befehlszeile arbeiten, können Sie sich einen Dateimanager ansehen, der auf Flüchen basiert, z. B. Ranger oder VIFM . In beiden können Sie Standardaktionen für Dateitypen definieren.
In vifm können Sie beispielsweise
~/.vifm/vifmrc
Assoziationen wie folgt definieren:Schlagen Enterwhith dem Cursor auf eine beliebige Datei mit einer der definierten Aktionen werden sehen , es durch die entsprechende Anwendung geöffnet. Wie Sie bei
.html
Dateien sehen können, können Sie sowohl ein Skript als auch eine Anwendung auslösen.quelle
Art von, aber es wird Ihre Standardanwendung als Ergebnis ändern. Ich bin nicht sicher, auf welchen anderen Betriebssystemen dies funktioniert, aber die folgenden Anweisungen funktionieren für Ubuntu 12.04 - Desktop X86-64. Ich hatte keine PDF-Dateien zur Hand und habe sie mit einem ZIP-Archiv getestet.
Allgemeine Schritte
Schritt 1In einem Terminaltyp:
Screenshot 1 = https://copy.com/qfWSZaZ4FzlAWählen Sie aus der Liste aus, indem
Screenshot 2 = https://copy.com/um6Rf7zRdceT#
Sie die gewünschte Anwendung eingeben und auf drücken enter. Die Datei wird sofort in der von Ihnen ausgewählten Anwendung geöffnet.Anmerkungen
Anmerkung 1Dadurch wird die Standardanwendung in die von Ihnen gewählte geändert. Jedes Mal, wenn Sie diesen Dateityp öffnen, wird sie in der zuletzt aus der Liste ausgewählten Anwendung geöffnet.
quelle
Kommt auf den Geschmack von Unix an, den du benutzt, denke ich. In OS X können Sie den folgenden
open
Befehl verwenden:quelle
open
Befehl zuerst in NextStep angezeigt und von OS X geerbt, sodass er möglicherweise auf anderen mehr oder weniger OpenStep-basierten Plattformen (z. B. AfterStep, LiteStep) in irgendeiner Form verfügbar ist.