You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHEL7.9中chage命令输出重定向后生成空文件问题求助

问题分析与解决

问题原因

在RHEL 7.9中,非root用户执行chage -l myaccount时,命令的输出内容实际上是发送到**标准错误流(stderr)**而非标准输出流(stdout)。当你使用> tmp.log重定向时,仅捕获了stdout的内容,而实际的输出(在stderr中)并未被写入文件,因此生成的tmp.log是空文件。

解决方法

要正确捕获所有输出到日志文件,需要同时重定向stdout和stderr。有两种常用方式:

  • 将stderr重定向到stdout,再统一写入文件:

    chage -l myaccount > tmp.log 2>&1
    
  • 使用bash的简化语法直接重定向所有流到文件(适用于bash 4.0及以上版本,RHEL 7.9的bash版本满足要求):

    chage -l myaccount &> tmp.log
    

验证方式

你可以通过以下命令验证输出流向:

  • 执行chage -l myaccount > /dev/null,如果仍能看到输出,说明内容在stderr中;
  • 执行chage -l myaccount 2> /dev/null,如果仍能看到输出,说明内容在stdout中。

内容的提问来源于stack exchange,提问作者Chris James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 03:51:43