Wollte eine Datei (.pdb-Datei: Proteinstrukturformat, egal) per Doppelklick öffnen.
Das "Öffnen mit" wird manuell angewiesen, "Pymol" (ein Programm, das das PDF-Format öffnet) mit Ubuntu Tweak auszuführen.
Allerdings fand ich , dass das Arbeitsverzeichnis ist $ HOME.
Da andere Dateien in dem Verzeichnis, in dem ich die Datei geöffnet habe, von entscheidender Bedeutung sind, möchte ich auf sie zugreifen.
Ich vermute, dass das "Pymol" auf $ HOME ausgeführt wird, während der absolute Pfad der "pdb-Datei" (Doppelklick-Datei) als Argument übergeben wird.
Ich denke, das ist ein allgemeines Problem und stelle eine Frage:
Wie kann ich das System das "Arbeitsverzeichnis" in das "Verzeichnis, in dem ich auf die Datei geklickt habe" ändern und ein Programm ausführen lassen?
quelle
~
richtig zu definieren . Sie brauchen bash -c nicht, wenn Sie den Pfad direct / home / marc verwenden.cd "%k"
funktioniert daher nicht. Aber du kannst verwendencd "$(dirname %k)"
.&&
führt etwas relativ zu aus~
?Keine der oben genannten Lösungen funktionierte auf meinem Debian. Auch
%d
ist veraltet. Siehe Desktop-Eintragsspezifikation .Ich verwende also das folgende Bash-Skript, um Pymol auszuführen. Zuerst müssen Sie die folgende Bash-Skriptdatei erstellen und in speichern
/usr/local/bin/run_pymol.sh
. Ich habe die Datei gespeichert,/usr/local
weil sie anscheinendxdg-open
nicht versteht, was das HOME-Verzeichnis ist oder so weiter.Geben Sie zweitens die ausführbare Berechtigung für diese Datei. Öffnen Sie ein Terminal und geben Sie die folgenden Befehle ein, um eine Berechtigung zu erteilen und zu bestätigen.
Ändern Sie schließlich Ihre
pymol.desktop
Datei wie folgt und Ihr Pymol startet in dem Verzeichnis, in dem sich die erste angegebene Datei befindet.Hoffe es hilft euch :-)
quelle
Path=/my/path
und das hat gut funktioniert.Path - If entry is of type Application, the working directory to run the program in.
Ich verstehe nicht, warum die Lösung dort oben so positiv bewertet wurde, dass sie absolut etwas anderes macht. Es ändert das Arbeitsverzeichnis in das Verzeichnis, in dem sich die .desktop-Datei befindet, während die Frage das Arbeitsverzeichnis in das Verzeichnis mit geöffneten Dateien ändern sollte.
Meine Lösung:
Beachten Sie, dass das Festlegen von env-Variablen für .desktop-Dateien anders ist
quelle
Sie können
/usr/share/applications
die richtigefile.desktop
Datei aufrufen , die aufgerufen wird, wenn Sie einen bestimmten Dateityp öffnen. Bearbeiten Sie es dann undexec
fügen Sie es in der Zeilecd PATH &&
zum Zeilenanfang hinzu.quelle
OK -
hat bei mir nicht funktioniert, da PATH nicht so definiert ist, dass es auf den Pfad von% F zeigt. Die einzigen Variablen, die in einer Anwendungsdesktopdatei verfügbar sind, sind:
Da ist es:% d ist das einzelne Verzeichnis, nach dem Sie suchen, da es keinen Sinn macht, in mehrere Verzeichnisse zu wechseln. Gehen Sie also zu / usr / share / applications und bearbeiten Sie die Datei application-name.desktop (in Ihrem Fall pymol.desktop). Dazu müssen Sie über Superuser-Berechtigungen verfügen. Suchen Sie dann die Zeile, die mit "Exec =" beginnt. Es liest sich wahrscheinlich
(In Ihrem Fall Exec = Pymol% F). Ändern Sie diese Zeile in
Speichern Sie diese Desktop-Datei. Wenn Sie das nächste Mal auf eine PDF-Datei klicken, sollte Ihr Arbeitsverzeichnis dasjenige sein, in dem sich diese PDF-Datei befindet, damit Pymol alle Ihre Dateien dort sehen kann.
Natürlich können Sie pymol auch über die Befehlszeile starten, nachdem Sie zuerst zu dem Verzeichnis navigiert haben, in dem sich Ihre Dateien befinden, aber ich denke, Sie wollten eine GUI-Lösung, also müssen Sie ein wenig bearbeiten :-)
quelle