我正在寻找在驱动器上自动编写一些 CoreStorage 命令的脚本。问题是其中一个驱动器是外部的,这意味着它可以显示为从磁盘 2 到磁盘 4 的任何驱动器,而我无法准确猜测。
但是,根据 diskutil 的列表,驱动器始终是 5TB 或 8TB。那么 GREP 向导能否想出一种方法来在 diskutil 列表中搜索 5TB 或 8TB 驱动器,如果找到,则在以下命令中使用该标识符?
我有一些谜题的碎片,但还不足以知道如何搜索 5TB 或 8TB,然后将得到的磁盘编号输入到变量中。
/dev/disk0 (internal):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme 1.0 TB disk0
1: EFI EFI 314.6 MB disk0s1
2: Apple_CoreStorage Macintosh HD 900.4 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
4: Apple_HFS Golden 61.0 GB disk0s4
5: Microsoft Reserved 16.8 MB disk0s5
6: Microsoft Basic Data 38.0 GB disk0s6
/dev/disk1 (internal, virtual):
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Mac HD +900.0 GB disk1
Logical Volume on disk0s2
3CE3A410-049C-42DC-AB48-2191A122F04F
Unencrypted
/dev/disk2 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +1.5 TB disk2
1: EFI EFI 209.7 MB disk2s1
2: Apple_HFS Time Machine Backups 1.5 TB disk2s2
/dev/disk3 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: +1.5 TB disk3
diskutil 的输出与上面类似。我没有任何想要定位的驱动器,但假设我想要 1.0 TB 驱动器的磁盘标识符,即 disk0,位于
答案1
假设你的输出看起来像这个例子您可以使用以下方式awk
获取值:Disk:
diskutil list | awk '/(1.0|5.0|8.0) TB/ {print $NF; exit}'
这将查找第一行写着1.0 TB
或5.0 TB
或8.0 TB
的内容,并打印最后一个字段,该字段恰好是磁盘 ID
要将该值保存在变量中,请使用命令替换:
disk_id="$(diskutil list | awk '/(1.0|5.0|8.0) TB/ {print $NF; exit}')"
现在变量disk_id
将包含命令的输出