假设我想在/Path
中找到所有名称为file_name*
的文件。很简单:
$ find /Path -name "file_name*"
/Path/foo1/file_name1.txt
/Path/foo2/file_name2.txt
/Path/bar3/file_name3.txt
/Path/bar4/file_name4.txt
如果我只想搜索像bar
这样的子目录怎么办?我可以使用管道将结果连接起来,但这种方法效率很低。
$ find /Path -name "file_name*" | grep "bar"
/Path/bar3/file_name3.txt
/Path/bar4/file_name4.txt
有没有办法在“find”命令中获取它们并跳过不匹配“bar”的目录?
注意:如果我特定搜索/Path/bar3
,结果会立即返回。 但是,如果我只搜索/Path
,然后使用grep
搜索bar
,则需要30-60秒。这就是为什么管道到grep
不可接受的原因。