`find -exec` 内的重定向或管道

Ric*_*ard 5 linux find exec

任何“find -exec”大师都在身边。

我有一个需要发送到的文件文件夹sendmail(当发生不好的事情时它们会出现在其中)。

怎么了?

Kam*_*ski 6

看来您希望此重定向 ( <) 或管道 ( |) 属于语句内部-exec \xe2\x80\xa6 ;。这不起作用,因为它们find甚至在运行之前就由您的 shell 处理。

\n\n

为了让它们工作,你需要在里面另一个外壳-exec \xe2\x80\xa6 ;。这个另一个 shell 将处理<or |。分别:

\n\n
find . -type f -exec sh -c \'sendmail -t < "$1"\' sh {} \\;\nfind . -type f -exec sh -c \'cat "$1" | sendmail -t\' sh {} \\;\n
Run Code Online (Sandbox Code Playgroud)\n\n

注意:find . -type f -exec sh -c \'sendmail -t < "{}"\' \\;不太复杂但错误。这里解释一下:可以find -exec sh -c安全使用吗?

\n