无忧启动论坛

标题: 有办法仅在某硬盘上进行find操作么? [打印本页]

作者: zyphio    时间: 2015-3-19 16:55
标题: 有办法仅在某硬盘上进行find操作么?
发现find命令默认搜索所有被支持的分区,且按hd0、hd1的顺序进行搜索。。。?!

有没有办法,让find命令仅搜索指定硬盘的各个分区中特定位置的么?

例如:从(hd1)的ud启动,想要搜索(hd1)上(hd1,3)根目录的bootmgr,而(hd0,1)根目录有一个老版本bootmgr文件,结果如果用find --set-root /bootmgr,老是被定位到(hd0,1)那个老版本的bootmgr,有什么办法么?
作者: chenall    时间: 2015-3-19 17:05
即然已经确定了(hd1,3)上有bootmgr,那还有必要使用find吗?直接使用绝对路径不就行了.

如果一个find不能满足你的要求,你还可以再加其它条件比如下面的会同时查找bootmgr和test.flg文件,
find --set-root /bootmgr if exist /test.flg

后面还可以继续if exist PATH判断另一个文件再比如需要同时存在bootmgr a.txt b.txt c.txt这四个文件
find --set-root /bootmgr if exist /a.txt if exist /b.txt if exist /c.txt

总之只要你的条件没问题,那查找到的结果就不会有问题.


作者: zyphio    时间: 2015-3-19 17:48
chenall 发表于 2015-3-19 17:05
即然已经确定了(hd1,3)上有bootmgr,那还有必要使用find吗?直接使用绝对路径不就行了.

如果一个find不能 ...

谢谢C大大!

是这样的,因为我经常在虚拟机里同挂几个设备(多硬盘多光驱等),而且端口位置经常变动。。

我希望知道的是——

某hd*不止一个分区,而被搜索的目标文件在此hd*上的某个分区,可能是ud分区,或是其他常规分区上。
如果从(hd1)上启动,那只在(hd1)上搜索指定文件,不要到(hd0)等其他设备上搜索(因为其他硬盘可能存在一样的文件目录结构,但同名文件实际上内容不同)。
作者: chenall    时间: 2015-3-19 20:50
这个估计你需要自己想办法,想不搜hd0也是有办法的,只需要添加一个判断当前是否是hd0就行了.方法有很多,比如下面的语法
只查找hd1-hd5

find --devices=h --set-root /bootmgr checkrange 0x81:0x85 read 0x82a0
作者: zyphio    时间: 2015-3-19 22:57
chenall 发表于 2015-3-19 20:50
这个估计你需要自己想办法,想不搜hd0也是有办法的,只需要添加一个判断当前是否是hd0就行了.方法有很多,比如 ...

谢谢C大大!

哈,原来还有这语法,太妙了这个,这正是我想知道的结果,谢谢C大大!
作者: 3ax31a    时间: 2015-3-20 09:02
高级用法!




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3