我找不到在 NAS 上重定向错误的方法。
shell 是/bin/sh
,当我使用时,> mylogfile.log 2>&1
我仍然看到终端上打印的错误。具体命令是
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
我看到错误find
。有什么方法可以让重定向正常工作吗?如何find
在日志文件中写入错误?
答案1
find /volume1/ | grep "totoro" > ~/totoro.log 2>&1
仅2>&1
影响您,而不是。在下面的命令中,第一个影响:grep
find
2>&1
find
find /volume1/ 2>&1 | grep "totoro" > ~/totoro.log 2>&1 # probably wrong
但这会将 stderr 和 stdout 从 发送find
到grep
。您可能不想grep
从 过滤 stderr find
。我猜您想捕获整个组合命令的 stdout 和 stderr 。如果是这样,请在显式子 shell 中运行该命令并重定向其输出和错误流:
(find /volume1/ 2>&1 | grep "totoro") > ~/totoro.log 2>&1
答案2
请参阅“tee”命令。它从标准输入读取并写入标准输出和文件。这在这里很有用。