2012-05-26 09:09:09 +0000 2012-05-26 09:09:09 +0000
61
61

¿Cómo puedo obtener la ruta de montaje de un dispositivo USB en OSX?

Tengo un script de copia de seguridad que respalda algunos datos en un dispositivo USB. El problema que tengo es que OSX a veces cambia la ruta de montaje esperada. Por ejemplo, si algún archivo está bloqueado en la ruta de montaje esperada, OSX lo monta en otra ruta. Un dispositivo USB llamado ‘BACKUP’ puede ser montado en /Volumes/BACKUP-1 en lugar de /Volumes/BACKUP.

¿Existe alguna forma de averiguar la ruta de montaje actual de un dispositivo USB en el terminal de OSX? ¿Algo como ‘mount_path BACKUP’ (el comando es falso) que devolvería ‘/Volumes/BACKUP-1’ o nada si el dispositivo no está montado?

Respuestas (8)

72
72
72
2012-05-26 09:56:13 +0000

Los siguientes comandos muestran información sobre los volúmenes montados:

  • El conocido mount de Unix, que muestra, por ejemplo, /dev/disk5s3 montado en /Volumes/Foo
  • diskutil list muestra una visión general de todos los discos y volúmenes
  • diskutil info /dev/disk5s3 muestra información sobre ese volumen, incluyendo un Volume UUID que puede utilizarse para identificar de forma única ese volumen.

Puede consultar el diskutil info utilizando el UUID del volumen:

$ diskutil info DEC8759E-F77D-3EAE-B3EB-B6438F1AA428 | grep 'Mount Point'
   Mount Point: /Volumes/DroboOne

Ejemplo de salida del comando en mi sistema:

$ mount
/dev/disk1 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)
localhost:/bNqIvVr1ZdFBdf19Io81Q4 on /Volumes/MobileBackups (mtmfs, nosuid, read-only, nobrowse)
/dev/disk4 on /Volumes/MyBook (hfs, local, nodev, nosuid, journaled)
/dev/disk5s3 on /Volumes/DroboOne (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk7s3 on /Volumes/DroboTwo (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk6s3 on /Volumes/DroboThree (hfs, local, nodev, nosuid, journaled, noowners)
  • *
$ diskutil list
/dev/disk0
   #: TYPE NAME SIZE IDENTIFIER
   0: GUID_partition_scheme *256.1 GB disk0
   1: EFI 209.7 MB disk0s1
   2: Apple_CoreStorage 240.0 GB disk0s2
   3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_HFS Servus10 HD *239.7 GB disk1
/dev/disk2
   #: TYPE NAME SIZE IDENTIFIER
   0: GUID_partition_scheme *3.0 TB disk2
   1: EFI 209.7 MB disk2s1
   2: Apple_CoreStorage 3.0 TB disk2s2
   3: Apple_Boot Boot OS X 134.2 MB disk2s3
/dev/disk4
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_HFS MyBook *3.0 TB disk4
/dev/disk5
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_partition_scheme *2.2 TB disk5
   1: Apple_partition_map 32.3 KB disk5s1
   2: Apple_HFS DroboOne 2.2 TB disk5s3
/dev/disk6
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_partition_scheme *2.2 TB disk6
   1: Apple_partition_map 32.3 KB disk6s1
   2: Apple_HFS DroboThree 2.2 TB disk6s3
/dev/disk7
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_partition_scheme *2.2 TB disk7
   1: Apple_partition_map 32.3 KB disk7s1
   2: Apple_HFS DroboTwo 2.2 TB disk7s3

$ diskutil info /dev/disk5s3
   Device Identifier: disk5s3
   Device Node: /dev/disk5s3
   Part of Whole: disk5
   Device / Media Name: Untitled

   Volume Name: DroboOne
   Escaped with Unicode: DroboOne

   Mounted: Yes
   Mount Point: /Volumes/DroboOne
   Escaped with Unicode: /Volumes/DroboOne

   File System Personality: Journaled HFS+
   Type (Bundle): hfs
   Name (User Visible): Mac OS Extended (Journaled)
   Journal: Journal size 172032 KB at offset 0x4001000
   Owners: Disabled

   Partition Type: Apple_HFS
   OS Can Be Installed: No
   Media Type: Generic
   Protocol: FireWire
   SMART Status: Not Supported
   Volume UUID: DEC8759E-F77D-3EAE-B3EB-B6438F1AA428

   Total Size: 2.2 TB (2198888927232 Bytes) (exactly 4294704936 512-Byte-Blocks)
   Volume Free Space: 169.4 GB (169412173824 Bytes) (exactly 330883152 512-Byte-Blocks)
   Device Block Size: 512 Bytes

   Read-Only Media: No
   Read-Only Volume: No
   Ejectable: Yes

   Whole: No
   Internal: No
10
10
10
2012-10-26 20:32:46 +0000

Que tal este comando:

df -lH | grep "Filesystem"; df -lH | grep "/Volumes/*"

En la columna “Mounted on” obtiene todos los puntos de montaje de todos los dispositivos montados en "/Volumes", que en mi caso son casi siempre dispositivos USB ;-)

Los comandos grep básicamente omiten el disco duro que está montado en "/".

En el terminal de mi OSX Snow Leopard, lo uso para una rápida visión de los Puntos de Montaje de mis Dispositivos USB actualmente conectados. Si sólo estás interesado en los puntos de montaje y no en todos los demás parámetros como UUID, etc., esta sería en mi opinión la forma más directa en lugar de "diskutil" con toda su información.

2
2
2
2015-12-29 11:14:55 +0000

Lo recupero en una variable:

media=Lo recupero en una variable: 

df | grep "media" | awk '{print $6}'Lo recupero en una variable: 


o

media=$(df | awk '/media/ {print $6}')

El comando df enumera las particiones, la salida resultante se canaliza como entrada al comando grep que filtra y mantiene sólo las líneas que contienen la palabra media, que luego se canaliza al comando awk que sólo mantiene la 6ª columna de su entrada de una línea.

1
1
1
2019-05-11 12:18:33 +0000

Sólo el viejo diskutil. Esto no es Linux, donde probablemente puedes mirar en /sys o algo así.

diskutil info "$VolumeName" | grep "Mount Point" | tr " " "\n" | tail -1
0
0
0
2015-02-25 15:53:57 +0000

Esto es lo que uso en mis scripts de shell en OS X

df | awk '{print $6}' | grep -Ex "/Volumes/myvolume"
0
0
0
2012-05-26 12:33:15 +0000

Yo usaría fstab para esto. Hay un hilo sobre este tema aquí en Super User: Mac Lion: fstab está obsoleto. ¿Qué lo sustituye para evitar que se monte una partición?

0
0
0
2012-09-26 09:25:39 +0000

Terminé usando este script bash :

#!/bin/sh
#
# Retrieves the mount point of an OSX volume name or UUID.
# @param $1 Name of the volume or UUID of the volume.
# @return returns the mount path or an empty string if the volume is not mounted. 
#
diskutil info $1 | grep 'Mount Point' | cut -d : -f 2 | sed 's/^ *//g' | sed 's/ *$//g';
-1
-1
-1
2017-04-27 13:40:38 +0000

Esto podría funcionar mejor:

df -lH | grep -E "*putinyourvolumelabel*$" | awk '{print $1}''