在Linux上$(find -X)等效

时间:2014-06-16 16:17:18

标签: linux bash

我正在尝试使用bash find命令创建一个元素数组,并在其中使用for循环搜索元素。 我需要做这样的事情:

for file in $(find -? dirname) ; do
echo element contains $file
done

我知道你可以在mac上找到-X(解析空格和\ n就像xargs那样),但有没有办法在linux上这样做? 提前感谢您的回复

1 个答案:

答案 0 :(得分:3)

OSX find联机帮助页上写的是-X:

  

但是,您可能希望结合使用-print0 primary   用``xargs -0''作为一种有效的替代方案。

所以你可以接受这个建议:

find dirname  -print0 | xargs -0 grep foo  # or whatever it is you wanted to do

或者,find可以为每个找到的文件本身执行命令:

find dirname -exec echo found {} \;

请注意已转发的;已终止 - 这只是您需要了解find -exec的内容。

或者类似于xargs的分块:

find dirname -exec grep foo {} +