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

Come posso ottenere il percorso di montaggio di un dispositivo USB su OSX?

Ho uno script di backup che esegue il backup di alcuni dati su un dispositivo USB. Il problema che ho è che OSX a volte cambia il percorso di montaggio previsto. Per esempio, se qualche file è bloccato nel percorso di montaggio previsto, OSX lo monta su un altro percorso. Un dispositivo USB chiamato ‘BACKUP’ può essere montato su /Volumes/BACKUP-1 invece di /Volumes/BACKUP.

C'è un modo per scoprire il percorso di montaggio corrente di un dispositivo USB nel terminale di OSX? Qualcosa come ‘mount_path BACKUP’ (il comando è falso) che poi restituirebbe ‘/Volumes/BACKUP-1’ o niente se il dispositivo non è montato?

Risposte (8)

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

I seguenti comandi mostrano informazioni sui volumi montati:

  • Il ben noto Unix mount, che mostra per esempio /dev/disk5s3 montato a /Volumes/Foo
  • diskutil list mostra una panoramica di tutti i dischi e volumi
  • diskutil info /dev/disk5s3 mostra informazioni su quel volume, incluso un Volume UUID che può essere usato per identificare univocamente quel volume.

Puoi interrogare diskutil info usando l'UUID del volume:

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

Esempio di output del comando sul mio 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

E questo comando?

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

Nella colonna “Mounted on” si ottengono tutti i punti di montaggio di tutti i dispositivi montati su "/Volumes", che nel mio caso sono quasi sempre dispositivi USB ;-)

I comandi grep in pratica saltano il disco fisso che è montato su "/".

nel terminale del mio OSX Snow Leopard, lo uso per una rapida panoramica dei punti di montaggio dei miei dispositivi USB attualmente collegati. Se sei interessato solo ai punti di montaggio e non a tutti gli altri parametri come UUID ecc., questo sarebbe secondo me il modo più diretto piuttosto che "diskutil" con tutte le sue informazioni.

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

Lo recupero in una variabile:

media=Lo recupero in una variabile: 

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


o

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

Il comando df elenca le partizioni, l'output risultante è convogliato come input al comando grep che filtra e mantiene solo le linee contenenti la parola media, che è poi convogliato al comando awk che mantiene solo la sesta colonna del suo input di una linea.

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

Solo il buon vecchio diskutil. Questo non è Linux, dove probabilmente puoi sbirciare in /sys o qualcosa del genere.

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

Questo è quello che uso nei miei script di shell su OS X

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

Io userei semplicemente fstab per questo. C'è un thread riguardante questo argomento qui su Super User: Mac Lion: fstab è deprecato. quindi cosa lo sostituisce per impedire il montaggio di una partizione?

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

Ho finito per usare questo 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

Questo potrebbe funzionare meglio:

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