Pregunta

Tengo un script bash que se ocupa de archivos en Mac OS X 10.5 y 10.6. Ahora tiene que determinar si los archivos están en un volumen local o un volumen AFP remoto. Todos los puntos de montaje están en /Volumes en Mac OS X, pero no puedo ver ninguna diferencia entre los volúmenes locales y remotas, al menos con ls -al (excepto para el volumen de inicio, que es un enlace a /).

¿Hay una manera de programáticamente, esp. algo que se puede llamar fácilmente a partir de un guión bash (I realmente no quieren volver a escribir esto en C / Obj-C con las API de OS X-específicos, a menos que sea absolutamente necesario), para determinar el fuente o el tipo de un punto de montaje? Incluso qué dispositivo se asigna a un volumen (suponiendo volúmenes montados con mount_afp, mount_smbfs, mount_webdav, etc., no hará referencia de nuevo a un dispositivo en /dev) así que tengo algunos manera de adivinar si es local o no?

¿Fue útil?

Solución

De la parte superior de mi cabeza, no creo que hay una API para ello que es común en todas las plataformas. Se podría, sin embargo, analizar la salida del comando mount:

~$ mount
/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk1s2 on /Users/nknight (hfs, local, nodev, nosuid, journaled, nobrowse)

mount sin argumentos tiene más o menos el mismo efecto en la mayoría de los sistemas * nix-ish, aunque no creo que el formato de salida ha sido estandarizada en cualquier lugar.


Les animo a reconsiderar su enfoque, sin embargo. El objetivo de los sistemas de archivos de red es que no se supone que las aplicaciones que se preocupan por ellos. Considere publicar otra pregunta explicando lo que estamos tratando de lograr al hacer esto. Probablemente alguien puede ofrecer una solución superior y más generalizada.

Otros consejos

¿La llanura

$ mount

comando sin ningún argumentos adicionales le dicen lo que necesita?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top