为什么“ ls | wc -l”在当前目录中显示正确数量的文件?

基里尔

尝试计算当前目录中的文件数时,我发现ls -1 | wc -l,这意味着:将文件列表(每个文件名都打印在新行中)发送到wc的输入,其中-l将计算输入中的行数。这是有道理的。

我决定尝试简单ls | wc -l,对此感到非常惊讶,它还为我提供了正确数量的文件。我不知道为什么会这样,因为ls没有选项的命令将文件名打印在一行上。

格伦·杰克曼

来自info ls

'-1'
'--format =单列'

每行列出一个文件。当标准输出不是终端时,这是“ ls”的默认设置。

用管道传输的输出时ls,每行只有一个文件名。
ls仅当输出注视人眼时才输出列中的文件。


这是ls决定要做什么的地方

  switch (ls_mode)
    {
    case LS_MULTI_COL:
      /* This is for the 'dir' program.  */
      format = many_per_line;
      set_quoting_style (NULL, escape_quoting_style);
      break;

    case LS_LONG_FORMAT:
      /* This is for the 'vdir' program.  */
      format = long_format;
      set_quoting_style (NULL, escape_quoting_style);
      break;

    case LS_LS:
      /* This is for the 'ls' program.  */
      if (isatty (STDOUT_FILENO))
        {
          format = many_per_line;
          /* See description of qmark_funny_chars, above.  */
          qmark_funny_chars = true;
        }
      else
        {
          format = one_per_line;
          qmark_funny_chars = false;
        }
      break;

    default:
      abort ();
    }

来源:http : //git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么`ls | xargs wc -l`有格式吗?

ls -l将是什么?wc -l命令显示?

为什么[“ $(ls * .jpg | wc -l)” = 0]始终为假,除非删除引号?

为什么这段代码在调用 ./prog ls ls wc 1.txt 时会停止?

ls -l *。<sometthing> |之间的差异。wc -l和ls -l | grep <东西> | wc -l

为什么以下`find`命令没有`ls -l`当前目录中的每个文件?

“ ls | wc -l”的结果与实际文件数不匹配

文件数-os.listdir vs ls | wc -l

在〜目录中时,ls为什么不显示/ usr /目录?

为什么ls -l输出的大小与ls -s不同?

使用管道模拟ls|wc|wc的C++程序运行成功后不显示输出

ls为什么不显示组名?

为什么 wc_get_template_part() 在 wc_get_products() 中不起作用?

无法在python中调用子进程“ ls -l文件夹| wc -l”

为什么`echo $(find)| wc -l`无法正确计算文件数?

为什么“ ls> ls.out”会导致“ ls.out”包含在名称列表中?

ls 的打印输出 | wc -l 在包含两列的 txt 文件中

ls 显示“没有这样的文件”,但为什么呢?

为什么“ ls * bash *”不显示.bashrc文件

为什么ls -a命令以红色显示文件名?

为什么“ ls”不显示“查找”发现的文件?

为什么ls命令显示已删除的文件?

为什么使用 ls 命令显示的文件大小不同?

为什么ls仍然显示通过GLOBIGNORE排除的文件?

为什么wc加一

为什么“ ls”不列出以“。”开头的文件。在Linux中

为什么ls命令中的当前目录被标识为链接到自身?

ls -l回声什么?

模拟ls的C程序中的管道破损| 排序| wc -l