세 개의 파일이 있는 폴더가 있습니다.
$ ls
a b c
출력을 ls
로 파이프하면 wc
올바른 결과를 얻습니다.
$ ls | wc -l
3
그러나 입력을 wc
출력으로 지정하면 ls
추가 텍스트가 표시됩니다.
$ wc -l <(ls)
3 /dev/fd/63
무슨 일인지 나한테 설명해 줄 수 있는 사람 있나요?
답변1
wc
가능하다면 작업 중인 파일이 무엇인지 알려줄 것입니다. 파이프가 있는 첫 번째 파일은 파일이 아닌 표준 입력에서 읽혀지므로 파일 이름이 보고되지 않습니다. 그러나 두 번째는 명령의 출력을 파일로 표시하고 wc
보고하는 프로세스 대체를 사용하고 있습니다. 읽은 파일 설명자를 보고합니다.