Как я могу получить путь монтирования USB-устройства на OSX?

У меня есть сценарий резервного копирования, который создает резервные копии некоторых данных на USB-устройство. Проблема в том, что OSX иногда изменяет ожидаемый путь монтирования. Например, если какой-то файл заблокирован по ожидаемому пути монтирования, OSX монтирует его по другому пути. USB-устройство с именем "BACKUP" может быть смонтировано в каталоге /Volumes/BACKUP-1, а не в каталоге /Volumes/BACKUP.

есть ли способ узнать текущий путь подключения USB-устройства в терминале OSX? Что-то вроде 'путь_к_файлу резервного копирования' (команда fake) что тогда вернет '/Volumes/BACKUP-1' или ничего, если устройство не было смонтировано?

5
задан xastor
источник

7 ответов

следующие команды показывают информацию о подключенных томах:

  • всем известный Unix mount, показав, например,/dev/disk5s3 установленный в /Volumes/Foo
  • diskutil list отображает список всех дисков и томов
  • diskutil info /dev/disk5s3 показывает информацию об этом томе, включая Volume UUID, который может быть использован для уникальной идентификации этого тома.

вы можете сделать запрос diskutil info С помощью Тома UUID:

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

пример вывода команды в моей системе:

$ 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
62
отвечен Daniel Beck 2012-05-26 11:38:30
источник

как насчет этой команды:

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

в колонке "Mounted on" вы получаете все точки монтирования всех устройств, смонтированных на "/Volumes", что в моем случае почти всегда устройства USB ;-)

на grep команды в основном пропустите жесткий диск, который установлен на "/".

в терминале моего OSX Snow Leopard я использую его для быстрого обзора точек монтирования моих подключенных в настоящее время USB-устройств. Если вас интересуют только точки монтирования и не все другие параметры как UUID etc., это было бы, на мой взгляд, более прямой путь, а не "diskutil" со всей информацией.

8
отвечен mallin 2012-10-26 20:53:18
источник

я извлекаю его в переменной:

media=\`df | grep "media" | awk '{print }'\`

или

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

df команда перечисляет разделы, полученный результат передается в качестве входных данных команде grep, которая фильтрует и сохраняет только строки, содержащие слово media, которое затем передается в awk команда, которая сохраняет только 6-й столбец своего ввода в одну строку.

2
отвечен Stephane 2017-05-03 09:06:20
источник

Я бы просто использовал для этого fstab. Есть тема, касающаяся этой темы здесь, на Super User:Mac Lion: fstab устарел. Итак, что заменяет его, чтобы предотвратить монтирование раздела?

0
отвечен dag729 2017-03-20 10:17:55
источник

Я закончил с помощью этого сценария bash:

#!/bin/sh
#
# Retrieves the mount point of an OSX volume name or UUID.
# @param  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  | grep 'Mount Point' | cut -d : -f 2 | sed 's/^ *//g' | sed 's/ *$//g';
0
отвечен xastor 2012-09-26 09:25:39
источник

Это то, что я использую в своих сценариях оболочки на OS X

df | awk '{print }' | grep -Ex "/Volumes/myvolume"
0
отвечен DannyRe 2015-02-25 15:53:57
источник

это может работать лучше:

df -lH | grep -E "*putinyourvolumelabel*$" | awk '{print }''
-1
отвечен Dennis Eisen 2017-04-27 14:30:09
источник

Другие вопросы bash macos mount usb