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에서 é 문자는 2바이트로 구성됩니다. 이 -m옵션을 사용하여 문자 수 m(멀티바이트 문자).

$ echo fée | wc -m
4

관련 정보