Linux ls | wc-l的输出
通常,Linux ls | wc-l的输出,linux,Linux,通常,wc-l命令的输出给出文件中的行数。 但是,当我们通过管道将ls命令的输出传递给它时,它似乎正确地显示了当前工作目录中的文件、目录和链接的数量 我的问题是,ls命令的输出在同一行中显示一些文件和目录的名称。那么,为什么在这种情况下使用ls | wc-l与ls-l | wc-l的输出相同呢。 提前感谢。ls检测到它正在通过管道传输到另一个程序而不是控制台,并每行输出一个文件/目录。您可以尝试ls | cat查看此行为。程序可以检查文件描述符是否引用了终端,并根据这一点显示不同的输出。 查看可
wc-l
命令的输出给出文件中的行数。
但是,当我们通过管道将ls
命令的输出传递给它时,它似乎正确地显示了当前工作目录中的文件、目录和链接的数量
我的问题是,ls
命令的输出在同一行中显示一些文件和目录的名称。那么,为什么在这种情况下使用ls | wc-l
与ls-l | wc-l
的输出相同呢。
提前感谢。
ls
检测到它正在通过管道传输到另一个程序而不是控制台,并每行输出一个文件/目录。您可以尝试ls | cat
查看此行为。程序可以检查文件描述符是否引用了终端,并根据这一点显示不同的输出。
查看可用于此目的的isatty(3)
事实上,当输出通过管道传输时,简化输出是一种常见的做法,以使它可能通过管道传输到的其他程序更易于进一步处理。
尤其是不可打印的字符,如改变颜色的终端控制代码等,可能会让人难以处理,而且当用户无法直接看到输出时,通常不需要这些字符。这将更多地讨论这一主题,或者另请参见问题。