Específicamente, estoy preguntando sobre el mecanismo por el cual Finder mostrará entradas que no existen en el directorio del sistema de archivos tal como se muestra en la terminal.
Ejemplo 1: /Applications
muestra App Store.app
en Finder, pero en realidad lo carga desde /System/Applications
según Apple.
Ejemplo 2: ~/Library/iCloud Drive
en Finder realmente existe como ~/Library/Mobile Documents
en el sistema de archivos.
Ejemplo 3: El contenido del ejemplo 2 está distorsionado ya que Mac realiza algún tipo de mapeo para que las entradas mostradas en Finder se resuelvan, por ejemplo, de com~apple~Numbers
a Numbers
y de com~apple~CloudDocs/*
a *
.
Preguntas:
- ¿Qué está causando esto? ¿Finder.app? ¿Atributos extendidos? ¿Algún servicio?
- ¿Es seguro utilizar esta funcionalidad de enlace/mapeo como usuario para mis propios usos?
- ¿Hay documentación en algún lugar sobre esta funcionalidad?
- ¿Por qué se utiliza esta funcionalidad, ya que distorsiona el mapeo 1 a 1 con el sistema de archivos? Incluso los enlaces simbólicos proporcionan claridad. ¿Es simplemente una funcionalidad mejorada que Apple ha agregado para estos casos únicos?
- ¿Hay alguna guía sobre cuándo es mejor utilizar o evitar esta funcionalidad, como por conveniencia, dolores de cabeza, preocupaciones de seguridad?
Actualización:
Así que firmlinks explica el primer ejemplo.
Los otros dos ejemplos relacionados con iCloud parecen ser causados por la integración de Apple de iCloud/FileProvider/(...) APIs. [1] [2] [3] [4] [5] [6] Pero eso parece un poco codificado si Finder solo intenta mapear el árbol de directorios de iCloud. Me pregunto si otros servicios (DropBox, OneDrive, etc) tienen alguna resolución de directorios similar, lo que apuntaría a que la implementación de la API en la nube de Apple es la causa, ya que se requiere que los terceros utilicen las APIs de Apple en la actualidad según entiendo.
Pero a través de la integración de iCloud de Apple, me pregunto si los atributos extendidos pueden ser lo que está provocando que Finder cambie su comportamiento para mostrar el contenido de manera diferente. Parece que com.apple.ubd.prsid
y/o com.apple.file-provider-domain-id
pueden ser el desencadenante, ya que no parecen ser utilizados en ningún otro lugar en el árbol de directorios de ~/Library/Mobile Documents
.
> cd ~/Library/Mobile\ Documents
> xattr -r . | grep -E 'com.apple.(ubd)|(icloud\.)|(file-?provider[^#]*$)'
./com~apple~CloudDocs/Desktop: com.apple.file-provider-domain-id
./com~apple~CloudDocs/Desktop: com.apple.fileprovider.detached
./com~apple~CloudDocs/Desktop: com.apple.icloud.desktop
./com~apple~CloudDocs/Documents: com.apple.file-provider-domain-id
./com~apple~CloudDocs/Documents: com.apple.fileprovider.detached
./com~apple~CloudDocs/Documents: com.apple.icloud.desktop
./.Trash: com.apple.fileprovider.trash
.: com.apple.file-provider-domain-id
.: com.apple.ubd.prsid
> xattr -p com.apple.file-provider-domain-id .
com.apple.CloudDocs.iCloudDriveFileProvider/
> xattr -p com.apple.ubd.prsid .
.CloudDocs
Donde \=
defaults read MobileMeAccounts | plutil -extract 'Accounts.0.AccountDSID' raw -
Y \=
defaults read com.apple.protectedcloudstorage.protectedcloudkeysyncing | \
plutil -extract 'registrySyncIdentifier' raw -
Y parece que los ejemplos que di tienen diferentes mecanismos que provocan un efecto similar. ¿Pero hay otras instancias donde esto ocurre en macOS? ¿O simplemente elegí los dos ejemplos exactos donde existe? Me da la impresión de que eso podría ser lo más probable.