Contexte: J'essaie de faire démarrer automatiquement une application lorsque je me connecte. Pour cela, je dois sélectionner le path
pour l'application.
Voici les chemins que j'ai déjà explorés:
/sbin
/usr/sbin
/usr/local/bin
/usr/share/
Si cela peut vous aider, l'application que j'essaie de trouver s'appelle " ScreenCloud " et je l'ai téléchargée à partir du Centre logiciel Ubuntu.
Mais je ne le trouve pas, est-il possible de savoir où est installé un logiciel particulier? Parce que même si j'ai trouvé pour celui-ci, je voudrais éviter d'avoir le même problème à l'avenir.
.deb
paquet mais vous devez ajouter PPA.screencloud.sh
àscreencloud
et je soupçonnais qu'elle avait été retirée/opt
. Cette partie de ma réponse indiquait commenttype
etwhich
ne trouverait passcreencloud
mais lelocate
ferait.screencloud.sh
existe toujours mais je ne sais pas en quoi il diffère duscreencloud
fait que le.sh
fichier est un script etscreencloud
ne l'est pas. Je ne connais vraiment pas cette application. Sous/usr/bin/
il y a unscreencloud
, unscreencloud.sh
et aussi unscreencloud-
suivi du numéro de version un peu comme commentgimp
est.Réponses:
Trouver le chemin d'un exécutable
Meilleur moyen
type executable
Consultez cette question pour en savoir plus sur la
type
meilleure solution. (Merci, commentaires!)D'autres moyens
whereis executable
which executable
Ces commandes ne recherchent que dans la variable PATH (
echo $PATH
), elles ne sont donc pas valides dans certains cas (fonctions intégrées, alias ou fonctions bash, etc.).la source
type
est préféréewhich
car c'est un shell intégré et peut déterminer si une commande est un alias. C'était nouveau pour moi aussi!type
est préféré: Pourquoi ne pas utiliser "qui"? Que faut-il utiliser alors?which
c'est effectivement utile dans le contexte spécifique des scripts shell. En dehors de ce contexte, cependant,type
c'est presque toujours le meilleur choix.Rechercher l'emplacement de la commande à l'intérieur ou à l'extérieur du chemin
Supposons que vous vouliez trouver l'emplacement d'
uname
un programme qui répertorie les informations système. Si vous voulez savoir dans quel répertoire la commande de niveau supérieur est stockée, vous disposez d'un certain nombre d'options:Localisez les avantages
La dernière option
locate
renvoie tous les fichiers contenantuname
non seulement le programme exécuté à partir de l'invite de commandes.L'avantage
locate
est qu'il trouvera des commandes qui ne se trouvent pas dans votre chemin de recherche.type -a
(préféré à simpletype
) etwhich
ne trouvera que des commandes dans votre chemin de recherche. Pour voir votre chemin de recherche, utilisezecho $PATH
.Prenez par exemple cette réponse dans Comment démarrer screencloud? :
La
locate screencloud
commande trouvra maiswhich screencloud
ettype -a screencloud
ne sera pas parce que:screencloud.sh
et seule lalocate
commande recherche sur une correspondance partielle./opt/screencloud
n'est probablement pas dans le chemin de recherche.which
ettype
ne recherchez que les fichiers exécutables dans le chemin de recherche.Remarque: il s'agit d'une réponse plus ancienne. ScreenCloud moderne est appelé avec
screencloud
.L'avantage de Locate par rapport à la
find
commande est qu'elle peut être des centaines, voire des milliers de fois plus rapide. L'exécution àfind
partir de/
donnera également de nombreuses erreurs d'autorisation que vous ne rencontrerez paslocate
.Localiser les inconvénients
Si vous venez d'installer le programme aujourd'hui, vous devrez utiliser
sudo updatedb
pour mettre à jour la base de données de Locate.la source
Utilisez la commande suivante pour répertorier tous vos
$PATH
répertoires:Utilisez la commande suivante pour rechercher le chemin d'accès complet pour
screencloud
:Si vous avez utilisé
apt
,apt-get
ou le Centre Ubuntu Software pour installer le package, vous pouvez utiliser la commande suivante pour trouver le chemin complet:En supposant que vous avez utilisé ce dépôt , vous devriez être en mesure de trouver
screencloud
dans/usr/bin/
.Le chemin complet est:
ou
Cependant, si vous avez utilisé le magasin snapcraft en fonction du lien que vous avez fourni dans votre question, le chemin se trouverait dans le répertoire suivant:
Plus d'informations
N'oubliez pas non plus qu'Ubuntu est sensible à la casse, vous devez donc utiliser tous les minuscules sans majuscules.
la source
/snap/bin
!