Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux ls | wc-l的输出_Linux - Fatal编程技术网

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)

事实上,当输出通过管道传输时,简化输出是一种常见的做法,以使它可能通过管道传输到的其他程序更易于进一步处理。
尤其是不可打印的字符,如改变颜色的终端控制代码等,可能会让人难以处理,而且当用户无法直接看到输出时,通常不需要这些字符。

这将更多地讨论这一主题,或者另请参见问题。