Kontext: Ich versuche, eine Anwendung automatisch zu starten, wenn ich mich anmelde. Dazu muss ich das path
für die Anwendung auswählen .
Hier sind die Pfade, die ich bereits untersucht habe:
/sbin
/usr/sbin
/usr/local/bin
/usr/share/
Wenn dies helfen kann, heißt die Anwendung, die ich suche, " ScreenCloud " und ich habe sie aus dem Ubuntu Software Center heruntergeladen.
Aber ich kann es nicht finden. Kann ich irgendwie wissen, wo eine bestimmte Software installiert ist? Denn selbst wenn ich dieses Problem gefunden hätte, würde ich es in Zukunft gerne vermeiden, dasselbe Problem zu haben.
.deb
Paket installiert werden , aber Sie müssen PPA hinzufügen.screencloud.sh
auf geändert wurdescreencloud
und vermutete, dass er entfernt wurde/opt
. Dieser Teil meiner Antwort zeigte auf, wietype
undwhich
würde nicht finden,screencloud
aberlocate
würde.screencloud.sh
gibt es eigentlich immer noch, aber ich bin nicht sicher, wie esscreencloud
anders ist als die Tatsache, dass die.sh
Datei ein Skript ist undscreencloud
nicht. Ich bin wirklich nicht mit dieser Anwendung vertraut. Darunter/usr/bin/
gibt es einscreencloud
, einscreencloud.sh
und auch einscreencloud-
gefolgt von der Versionsnummer sozusagen wie esgimp
ist.Antworten:
Finden Sie den Pfad einer ausführbaren Datei
Bester Weg
type executable
Auschecken diese Frage an, um mehr darüber zu erfahren, wie
type
es besser ist. (Danke, Kommentare!)Andere Möglichkeiten
whereis executable
which executable
Diese Befehle suchen nur in der PATH-Variablen (
echo $PATH
), daher sind sie in einigen Fällen nicht gültig (integrierte Funktionen, Aliase oder Bash-Funktionen und mehr).quelle
type
über bevorzugt,which
da es eine Schale builtin ist und kann bestimmen , ob ein Befehl ein Alias ist. Das war mir auch neu!type
bevorzugt wird: Warum nicht "welches" verwenden? Was ist dann zu verwenden?which
dies im speziellen Kontext von Shell-Skripten tatsächlich nützlich ist. Außerhalb dieses Kontextes ist jedochtype
fast immer die bessere Wahl.Suchen Sie den Befehlsspeicherort innerhalb oder außerhalb des Pfads
Angenommen, Sie möchten den Speicherort
uname
eines Programms ermitteln, das Systeminformationen auflistet. Wenn Sie wissen möchten, in welchem Verzeichnis der Befehl der obersten Ebene gespeichert ist, haben Sie eine Reihe von Optionen:Finde die Vorteile
Die letzte Option
locate
gibt alle Dateien zurück, dieuname
nicht nur das Programm enthalten, das an der Eingabeaufforderung ausgeführt wird.Der Vorteil
locate
ist, dass Befehle gefunden werden, die sich nicht in Ihrem Suchpfad befinden.type -a
(Bevorzugter als einfachertype
) undwhich
findet nur Befehle in Ihrem Suchpfad. Um Ihren Suchpfad anzuzeigen, verwenden Sieecho $PATH
.Nehmen Sie zum Beispiel diese Antwort in Wie starte ich screencloud? :
Der
locate screencloud
Befehl wird es aber findenwhich screencloud
undtype -a screencloud
nicht weil:screencloud.sh
und derlocate
Befehl sucht nur bei teilweiser Übereinstimmung./opt/screencloud
wahrscheinlich ist nicht im Suchpfad.which
undtype
nur nach ausführbaren Dateien im Suchpfad suchen.Hinweis: Dies ist eine ältere Antwort. Moderne ScreenCloud heißt mit
screencloud
.Der Vorteil von Locate gegenüber dem
find
Befehl ist, dass er hunderte oder sogar tausende Male schneller sein kann. Auch wenn Siefind
ab/
ausführen, treten viele Berechtigungsfehler auf, mit denen Sie nicht konfrontiert sindlocate
.Suche nach Nachteilen
Wenn Sie das Programm erst heute installiert haben, müssen Sie es
sudo updatedb
zum Aktualisieren der locate-Datenbank verwenden.quelle
Verwenden Sie den folgenden Befehl, um alle Ihre
$PATH
Verzeichnisse aufzulisten :Verwenden Sie den folgenden Befehl, um den vollständigen Pfad zu finden
screencloud
:Wenn Sie verwendet
apt
,apt-get
oder das Ubuntu Software Center , das Paket zu installieren, können Sie den folgenden Befehl verwenden Sie den vollständigen Pfad zu finden:Angenommen , Sie verwendet dieses Repository , sollten Sie in der Lage sein , zu finden
screencloud
in/usr/bin/
.Der vollständige Pfad lautet:
oder
Wenn Sie jedoch den Snapcraft-Shop gemäß dem in Ihrer Frage angegebenen Link verwenden , befindet sich der Pfad unter folgendem Verzeichnis:
Mehr Info
Denken Sie auch daran, dass bei Ubuntu die Groß- und Kleinschreibung beachtet werden muss.
quelle
/snap/bin
!