如何在 OSX 上取得 USB 裝置的掛載路徑?

如何在 OSX 上取得 USB 裝置的掛載路徑?

我有一個備份腳本,可以將一些資料備份到 USB 裝置。我遇到的問題是 OSX 有時會更改預期的安裝路徑。例如,如果某個檔案被鎖定在預期的安裝路徑下,OSX 會將其安裝在另一個路徑上。名為「BACKUP」的 USB 裝置可以安裝在 /Volumes/BACKUP-1 而不是 /Volumes/BACKUP。

有沒有辦法在 OSX 終端機中找出 USB 裝置的目前安裝路徑?像是「mount_path BACKUP」(指令是假的)之類的東西,如果裝置未安裝,它會回傳「/Volumes/BACKUP-1」或什麼也不回傳?

答案1

以下命令顯示已安裝磁碟區的資訊:

  • 眾所周知的 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

答案2

這個指令怎麼樣:

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

在「安裝於」列中,您可以取得安裝於 的所有裝置的所有安裝點"/Volumes",在我的情況下,這些裝置幾乎都是 USB 裝置;-)

這些grep命令基本上跳過安裝在 上的硬碟"/"

在我的 OSX Snow Leopard 終端機中,我使用它來快速概覽目前連接的 USB 裝置的掛載點。如果您只對掛載點感興趣,而不對 UUID 等所有其他參數感興趣,那麼我認為這將是更直接的方法,而不是"diskutil"其所有資訊。

答案3

我在變數中檢索它:

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

或者

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

df命令列出分區,結果輸出通過管道作為輸入到 grep 命令,該命令過濾並僅保留包含單字 media 的行,然後將其通過管道傳輸到awk僅保留其一行輸入的第 6 列的命令。

答案4

只是好老diskutil。這不是 Linux,在 Linux 中你可能可以查看 /sys 之類的東西。

diskutil info "$VolumeName" | grep "Mount Point" | tr " " "\n" | tail -1

相關內容