繁体   English   中英

输出ls | wc -l

[英]Output of ls | wc -l

通常, wc -l命令的输出给出文件中的行数。 但是,当我们将ls命令的输出传递给它时,它似乎正确地显示了当前工作目录中的文件和目录以及链接的数量。

我的问题是ls命令的输出显示同一行中某些文件和目录的名称。 那么,为什么在这种情况下使用ls | wc -l ls -l | wc -l相比, ls | wc -l给出相同的输出 ls -l | wc -l 提前致谢。

ls检测到它被传送到另一个程序而不是控制台,并且每行输出一个文件/目录。 你可以尝试ls | cat ls | cat看到这种行为。

程序可以检查文件描述符是否引用终端,并根据此提供不同的输出。 检查isatty(3)可用于此目的。

实际上,通常的做法是在管道输出时简化输出,以便进一步处理可能被管道传输的其他程序。 尤其是诸如改变颜色等的终端控制代码之类的不可打印字符可能是难以处理的,并且当用户不直接看到输出时通常是不必要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM