3
votes

Vérifiez si une application est installée sur MacOS à l'aide du terminal

Je crée un petit outil CLI multiplateforme dans TypeScript / NodeJs. Sa principale caractéristique nécessite de vérifier quels navigateurs sont installés sur l'hôte. Sous Linux et Windows, cela fonctionne parfaitement. J'ai fait beaucoup de recherches sur la façon dont je peux y parvenir et j'utilise actuellement "reg query" pour Windows et "which" pour les systèmes d'exploitation Unix - Linux, mais je ne sais pas par où commencer avec MacOS.

Je sais que c'est un système d'exploitation de type Unix mais je ne peux pas tester mon outil. Quelqu'un peut-il m'aider, car je ne possède pas physiquement un MacBook et je ne peux donc pas tester quelle commande bash dois-je utiliser. Je ne vous demande pas d'écrire le code complet, juste la ou les commandes à utiliser ou encore mieux, un exemple fonctionnel (capture d'écran) de la commande qui fonctionne correctement. Je sais que je pourrais utiliser "which", "type" ou même "open -Ra" (pas sûr de celui-ci) Je ne sais tout simplement pas quel est leur résultat.


0 commentaires

4 Réponses :


0
votes

Le Mac OS est construit sur la version Unix Free BSD. De nombreuses commandes Linux fonctionneront probablement également sur Mac. Pour accéder à cette partie de l'OS, les émulateurs de terminal "Terminal" et "iTerm" peuvent être utilisés. La commande "which" fonctionne très bien sur un Mac.

Si votre défi est juste de trouver les navigateurs sur un ordinateur Mac, j'utilise la commande ls dirigée vers grep. La plupart des applications sur un ordinateur Mac sont stockées dans le dossier Applications. Ce dossier est situé au niveau racine. Pour trouver un navigateur spécifique, je saisis:

> cd Applications 
> ls -l | grep -i BrowserName

Vous pouvez le faire pour chaque navigateur que vous connaissez. Je ne sais pas comment trouver les navigateurs en général. Si vous le faites, vous pouvez simplement essayer la même commande sur Mac.

Si vous avez besoin d'aide supplémentaire, n'hésitez pas à laisser un commentaire.


1 commentaires

Certaines applications sont installées dans des sous-répertoires de / Applications . D'autres applications sont installées dans ~ / Applications . C'est plus complexe que de simplement chercher dans / Applications .



4
votes

La commande:

mdfind "kMDItemKind == 'Application'"

affichera une liste des applications installées sur le système (une par ligne) avec leurs chemins. Exemple:

/ Applications / Safari Technology Preview.app
/Applications/Safari.app

Vous pouvez rechercher vos navigateurs pris en charge dans cette liste.


0 commentaires

0
votes

Vous pouvez également utiliser les éléments suivants:

mdfind -name 'kMDItemFSName=="*.app"' -onlyin /Volumes/Macintosh\ HD/Applications/ |cut -d "/" -f3|grep .app

ou

mdfind -name 'kMDItemFSName=="*.app"' -onlyin /Volumes/Macintosh_HD/Applications/


0 commentaires

0
votes

Cela dépend de ce que l'on entend par "installé". Je peux penser à deux définitions différentes:

  1. Applications apparaissant dans Launchpad.
  2. Applications apparaissant dans les informations système> Applications pouvant être lancées via open -a {app} à partir d'un terminal ou en accédant au dossier de l'application et en double-cliquant dessus. Leurs emplacements couvrent l'intégralité de l'index Spotlight: normalement l'ensemble du disque dur moins les exclusions Spotlight.

Pour le n ° 1, développant la réponse de @ mschmidt, nous pouvons utiliser, par exemple:

mdfind -name 'Google Chrome.app'

(je ne suis pas sûr que ce soient les seules racines utilisé par Launchpad.)

Pour # 2, nous pouvons utiliser:

mdfind -name 'Google Chrome.app' -onlyin /Applications -onlyin ~/Applications -onlyin /System/Applications

Cela le trouverait n'importe où dans Spotlight et c'est en effet ce que ouvre -a peut s'ouvrir.

Testé sur Catalina.


0 commentaires