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.

したがって、これらの3つの数字は、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改行文字)を印刷するので、1行、1語、4バイトになります。

3番目のフィールドは、文字数ではなくバイト数です。これは、UTF-8(最近の標準になる傾向がある)を使用するのと同じように、文字を複数のバイトで構成できるロケールで特に重要です。

$ echo fée | wc
    1    1    5

UTF-8では、é文字は2バイトで構成されています。この-mオプションを使用した文字数m(マルチバイト文字)。

$ echo fée | wc -m
4

関連情報