我想运行类似的东西
% sudo grep -i -a 'some-string' <drive device>
在 Linux 上,<drive device>
会类似于/dev/sda1
.我怎样才能找到达尔文的同等内容?
(如果不明显,我正在尽最后的努力寻找意外删除的数据。)
答案1
如果文件系统接管整个磁盘,OS X 当前使用类似/dev/disk5
.如果磁盘已分区,它会添加一个s#
后缀,就像/dev/disk5s2
第二个分区一样。 (s
是“slice”的缩写,一种 BSDism,其功能相当于分区。)
磁盘在启动时按操作系统发现的顺序按顺序编号,因此您可能需要进行一些实验才能确定哪个设备是哪个。
如果您diskutil list
在命令行中输入,您将获得可用磁盘的详细列表,包括它们的/dev
节点和卷名称:
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *121.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_CoreStorage 121.0 GB disk0s2
3: Apple_Boot Boot OS X 134.2 MB disk0s3
/dev/disk1
...etc..
/dev/disk7
#: TYPE NAME SIZE IDENTIFIER
0: Apple_HFS Time Machine *999.5 GB disk7
在上面的情况下disk0
,磁盘上有三个片,因此/dev/disk0
整个磁盘有一个 ,加上/dev/disk0s1
through ...s3
。
在 的情况下disk7
,没有报告任何切片,因此您可以通过整个磁盘/dev/disk7
节点访问该切片。
答案2
当grep
ping 磁盘时 - 除非您实际上正在寻找不可打印的信息 - 您可能会喜欢这样做:
tr -c '[:print:]\n' '\n\n' </dev/disk |
grep -b 'regex'
所有二进制数据都会转换为换行符,并且grep
可以简单地忽略它,除非将其报告的偏移量增加一。
答案3
我在 grep 磁盘设备时注意到了一些问题,我在此处用帮助程序脚本记录了这些问题: