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.
4 Réponses :
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.
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
.
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.
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/
Cela dépend de ce que l'on entend par "installé". Je peux penser à deux définitions différentes:
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.