使用wc命令统计文件时如何屏蔽目录类错误提示
解决wc命令统计时输出目录报错的方法
你遇到的报错是因为/etc/*conf通配符匹配到了名为dconf的目录,wc默认无法统计目录内容,就会向标准错误流输出报错信息,有两种常见的解决方式:
方法1:直接丢弃所有错误输出
Linux中命令的错误信息默认会输出到文件描述符2(标准错误流),你可以将其重定向到空设备/dev/null直接丢弃:
wc -l -w -m /etc/*conf 2>/dev/null
这种方式操作最简单,但会屏蔽所有类型的错误信息(比如权限不足无法读取文件的报错也会被隐藏),适合只需要最终统计结果、不需要关注其他异常的场景。
方法2:仅统计普通文件,从源头避免报错
如果你希望保留其他合法报错(比如权限不足提示),只是不想触发目录类型的报错,可以用find命令提前过滤出符合要求的普通文件再传给wc处理:
find /etc -maxdepth 1 -type f -name "*conf" -exec wc -l -w -m {} +
参数说明:
-maxdepth 1:仅扫描/etc根层级,不会遍历子目录-type f:只匹配普通文件,自动过滤目录、链接等其他类型的文件-name "*conf":匹配名称以conf结尾的文件,和你原来的通配符规则一致-exec ... {} +:将所有匹配到的文件一次性传给wc命令执行,效率更高
内容的提问来源于stack exchange,提问作者Ludgero Miguel
相关产品推荐
相关产品推荐

