我想执行这个命令:
find /apps/ -type f -print0 | grep -z log$ | xargs -0 grep 'this->aForm'
同时,我想查看哪些文件正在被处理。
怎么办呢?
答案1
Stack Overflow 上有一个类似的问题:
https://stackoverflow.com/questions/670784/redirecting-bash-stdout-stderr-to-two-places
这个想法是使用命名管道,在 bash 中你可以简单地执行以下操作:
command_that_writes_to_stdout | tee >(command_that_reads_from_stdin)
但在一般情况下,使用mkfifo
,例如:
mkfifo some_pipe
command_that_writes_to_stdout | tee some_pipe \
& command_that_reads_from_stdin < some_pipe
rm some_pipe
(两个例子均来自 Stack Overflow 答案)