我正在尝试将命令的输出重定向到文件。我使用的命令 (zypper) 从 Internet 下载包。我正在使用的命令是
zypper -x -n in geany >> log.txt
该命令逐渐将输出打印到控制台。我面临的问题是,上面的命令在命令执行完成后一次将命令输出全部写入。如何将 bash 输出重定向到终端,而不是在最后写入所有命令输出。
我正在尝试将命令的输出重定向到文件。我使用的命令 (zypper) 从 Internet 下载包。我正在使用的命令是
zypper -x -n in geany >> log.txt
该命令逐渐将输出打印到控制台。我面临的问题是,上面的命令在命令执行完成后一次将命令输出全部写入。如何将 bash 输出重定向到终端,而不是在最后写入所有命令输出。
不是 bash 本身,而是通过tee
命令:
zipper -x -n in geany | tee log.txt
&>>文件命令
将 COMMAND 的输出附加到 FILE
在你的情况下
&>>log.txt zypper -x -n in geany
如果要通过过滤器传递命令,则必须确保命令输出到标准输出(文件描述符 1)——如果它输出到标准错误(文件描述符 2),则必须在执行之前将 2 重定向到 1管道。考虑到只有标准输出通过管道。
所以你必须这样做:
2>&1 COMMAND | FILTER
如果您想 grep 输出并同时将其保存到日志文件中,则必须使用 复制它tee
,并使用类似的过滤器 ... | tee log-file | grep options