我有一個備份腳本,可以將一些資料備份到 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