我有一个备份脚本,可以将一些数据备份到 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,您可能无法窥视 /sys 或类似的东西。
diskutil info "$VolumeName" | grep "Mount Point" | tr " " "\n" | tail -1