14 votos

¿Cómo se determinan los contenidos del directorio en Finder?

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.

9voto

user43889 Puntos 266

Su pregunta y sus ejemplos se relacionan con dos características distintas de macOS reciente. Abordaré esto mirando su Ejemplo 1 y luego Ejemplos 2 y 3.

Ejemplo 1:

(Texto en gran parte tomado de respuestas de @benwiggy y @Marc Wilson)

Para la seguridad e integridad del sistema, macOS 11 y posteriores están divididos en dos partes;

  • El Sistema Operativo (incluyendo aplicaciones incluidas, fuentes y todo lo instalado por Apple) está en un volumen de disco separado y de solo lectura. (Generalmente llamado Macintosh HD).
  • Todo lo demás: sus aplicaciones, sus fuentes, documentos, etc., se almacena en Macintosh HD - Datos.

El volumen del SO se monta en /System, y las aplicaciones incluidas como Vista Previa, App Store están en /System/Aplicaciones, como señala. Otras aplicaciones que instale van a /Aplicaciones, pero Apple 'fusiona' las dos ubicaciones usando firmlinks para que las aplicaciones no necesiten ser conscientes de la separación. Esta separación está oculta en el Finder, para mantener las cosas simples para el usuario. Aún así, se puede ver la división en Terminal.

Además de /Aplicaciones se combinan otros folders de nivel superior usando firmlinks y 1) presentados como uno solo por el Finder, y 2) combinados como uno solo para las aplicaciones. /Biblioteca es quizás la más importante, pero también /privado y partes de /usr.

Como siempre, Howard Oakley en Eclectic Light es la mejor fuente: https://eclecticlight.co/2023/07/22/how-macos-depends-on-firmlinks/.

También un enlace a la presentación de la WWDC cuando se introdujeron por primera vez los firmlinks: https://developer.apple.com/videos/play/wwdc2019/710/

Usted pregunta, ¿puede usar esta funcionalidad usted mismo? Mientras puede crear sus propios firmlinks (ver al final del artículo de Howard Oakley), no debe hacerlo. La única excepción es para aplicaciones que, principalmente por razones históricas, esperan archivos en sus propios folders de nivel root específicos de la app.

Ejemplos 2 y 3:

El Finder presenta vistas 'amistosas' de algunos de los contenidos de ~/Biblioteca/Documentos Móviles/. Estas vistas son completamente artificiales y se construyen a partir de varios elementos en el sistema de archivos. En particular:

  • Las carpetas dentro de ~/Biblioteca/Documentos Móviles/com~apple~CloudDocs se muestran dentro de iCloud Drive. Estas son en su mayoría carpetas creadas por usted, pero también las de algunas aplicaciones.

  • Las otras carpetas mostradas por el Finder en iCloud Drive han sido creadas (o usadas por) aplicaciones que están en su Mac. En su ejemplo ~/Biblioteca/Documentos Móviles/com~apple~Numbers, el contenido de su carpeta Documentos se muestra en iCloud Drive/Numbers.

  • Hay más carpetas en ~/Biblioteca/Documentos Móviles que el Finder ignora y no presenta en iCloud Drive. Estas son carpetas de aplicaciones que sincronizan contenido entre sus dispositivos de Apple. Algunas de ellas pueden haber sido creadas en iCloud por aplicaciones en su iPhone y otras pueden ser de aplicaciones que eliminó hace años!

Debo agregar que lo que muestra el Finder en la barra lateral como iCloud Drive es lo mismo que muestra (macOS 14) como ~/Biblioteca/iCloud Drive. Pero ~/Biblioteca/iCloud Drive no es parte del sistema de archivos como se muestra en los comandos de ls en Terminal, es otro constructo solo para el Finder.

No debe manipular el contenido de ~/Biblioteca/Documentos Móviles. Hasta hace poco esto era visible en Finder, pero ahora requiere la aplicación Terminal.

Las alternativas al Finder (por ejemplo, Path Finder) pueden mostrar ~/Biblioteca/Documentos Móviles y, en el caso de Path Finder, presentar su propia vista curada de lo que hay allí.

Con respecto a sus preguntas explícitas relacionadas con los ejemplos 2 y 3:

  • ¿Qué está causando esto? ¿Finder.app? ¿Atributos extendidos? ¿Algún servicio? Finder
  • ¿Es segura la funcionalidad de enlace/mapeo para ser utilizada por el usuario para mis propios usos? No, no debería manipularlo.
  • ¿Hay documentación en algún lugar para esta funcionalidad? No de Apple - no se supone que necesite conocer la funcionalidad subyacente. Explore los artículos de iCloud e iCloud Drive Eclectic Light (Howard Oakley) para obtener una comprensión más profunda.
  • ¿Por qué se utiliza esta funcionalidad, ya que distorsiona la asignación 1 a 1 con el sistema de archivos? Para hacer que las cosas desordenadas se vean bonitas.
  • ¿Hay alguna guía sobre cuándo es mejor usar o evitar esta funcionalidad, como por conveniencia, dolores de cabeza, preocupaciones de seguridad? Mire (si desea), no toque. Utilice iCloud Drive del Finder.

6voto

Marc Wilson Puntos 146

La palabra que estás buscando es 'firmlinks'.

Como siempre, Howard Oakley en Eclectic Light es un buen recurso.

https://eclecticlight.co/2023/07/22/how-macos-depends-on-firmlinks/

Aquí tienes un enlace a la presentación de la WWDC cuando se introdujeron por primera vez.

https://developer.apple.com/videos/play/wwdc2019/710/

1voto

benwiggy Puntos 8

Ejemplo 1: /Applications muestra App Store.app en Finder, pero en realidad lo está cargando desde /System/Applications según Apple.

El Sistema Operativo (incluidas las aplicaciones integradas, fuentes y todo lo que instala Apple) está en un volumen de disco separado y de solo lectura. (Generalmente Macintosh HD. Todo lo demás: tus aplicaciones, tus fuentes, documentos, etc., se almacena en Macintosh HD - Data.

El volumen del SO está montado en /System, y las aplicaciones integradas como Vista Previa y App Store están en /System/Applications, como has señalado. Otras aplicaciones que instales van a /Applications, pero Apple 'fusiona' las dos ubicaciones en Finder, para mantener las cosas simples para el usuario. Aún puedes ver la división en Terminal.

¿Es segura esta funcionalidad de enlace/mapping para usar como usuario para mis propios fines?

No creo que puedas utilizar esta funcionalidad para ningún otro uso.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X