1 votes

/usr/bin/MAKE simultanément présent et non présent

J'utilise macOS Monterey 12.0.1. Lorsque je lance l'application Terminal, elle m'informe que "Le Shell interactif par défaut est maintenant zsh". D'accord.

Aujourd'hui, j'ai couru make pour construire un programme, sauf que mon verrouillage des majuscules était activé et que j'ai donc tapé MAKE . Étonnamment, cela a fonctionné !

J'ai donc vérifié et il y avait bien une mention "tout en majuscules". MAKE :

$ ls -l /usr/bin/MAKE
-rwxr-xr-x  1 root  wheel  137696 Oct 17 23:30 /usr/bin/MAKE

Intéressant ! Alors peut-être que macOS a des variantes en majuscules d'utilitaires communs ? J'ai décidé de vérifier s'il y avait d'autres possibilités :

$ cd /usr/bin
$ ls [A-Z]*
AssetCacheLocatorUtil       DeRez               IOMFB_FDR_Loader        SafeEjectGPU
AssetCacheManagerUtil       GetFileInfo         ResMerger           SetFile
AssetCacheTetheratorUtil    IOAccelMemory           Rez             SplitForks

Attendez une minute... où est MAKE ?

$ ls -l MAKE
-rwxr-xr-x  1 root  wheel  137696 Oct 17 23:30 MAKE

Toujours là.

$ ls -l M*
ls: M*: No such file or directory

Pas là !

Quelqu'un a-t-il une idée de ce qui se passe ici ? S'agit-il d'un fichier caché aux yeux des utilisateurs normaux ? ls et Shell globalisation des noms de fichiers ? Même ls -a ne le montre pas.

2voto

Spiff Points 95683

Par défaut, macOS crée des systèmes de fichiers qui préservent la casse mais ne la respectent pas. Ainsi, "MAKE" correspond à "make".

Si vous préférez une sensibilité stricte à la casse, vous devrez utiliser l'Utilitaire de disque pour créer un système de fichiers APFS sensible à la casse et installer macOS sur ce système.

Modification de l'article :
Notez également que la globalisation (par ex. ls /usr/bin/M* ) fonctionne différemment de la spécification d'un nom de fichier exact (par ex. ls /usr/bin/MAKE ) parce que dans le premier cas, le Shell demande une liste de répertoires et fait ensuite la correspondance lui-même, ce qui suit bash Les règles normales de globalisation sensibles à la casse de macOS, mais dans ce dernier cas, il demande aux API du système de fichiers du système d'exploitation de correspondre à un nom de fichier exact, de sorte que les API du système de fichiers de macOS effectuent leur correspondance non sensible à la casse dans ce cas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X