ls -l | 是什么意思?上厕所吗?

ls -l | 是什么意思?上厕所吗?

我无法弄清楚这个命令的作用。它在我的终端中生成 3 个数字,但没有解释这些数字是什么。我了解ls -l以日志列表格式列出所有文件,并且wc是字数统计,但这些数字似乎与任何内容都不匹配。

有什么帮助吗?

答案1

每当您不理解某个命令时,请阅读其手册。在这种情况下,man wc将向您展示:

DESCRIPTION
   Print newline, word, and byte counts for each FILE, and a total line if
   more than one FILE is specified. [...] A  word  is a non-zero-length
   sequence of characters delimited by white space.

所以,这三个数字是 i) 行数; ii) 字数; iii) 字节数。因此,如果我在此目录中运行它:

$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file1
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file2
-rw-r--r-- 1 terdon terdon 0 Oct 19 14:29 file3

它将返回:

$ ls -l | wc
    4      29     152

这是因为,正如您在上面看到的,有4输出行,其中包含29“单词”(单词由空格定义)和总共152\n字节(请注意,这包括每行末尾的换行符 ( ) 字符)。

对于一个更简单的示例,请尝试:

$ echo "foo" | wc  
    1    1     4

该命令echo "foo"实际上打印foo\n\n是换行符),所以这是一行、一个字和 4 个字节。

请注意,第三个字段是字节数,而不是字符数。这在字符可以由多个字节组成的语言环境中尤其重要,例如使用 UTF-8(现在往往是标准)。

$ echo fée | wc
    1    1    5

在 UTF-8 中,é 字符由两个字节组成。您可以使用该-m选项来获取字符数(m用于多字节字符)。

$ echo fée | wc -m
4

相关内容