언제 파이프를 사용하고 언제 리디렉션합니까?

언제 파이프를 사용하고 언제 리디렉션합니까?

기본적인 내용이지만 그래도 궁금하네요. 다음 두 가지 예를 고려하십시오.

사례 1:

[root@dhcppc0 practice]# cat file1 > wc -l
cat: invalid option -- l
Try `cat --help' for more information.

사례 2:

[root@dhcppc0 practice]# cat file1 | wc -l
7

첫 번째 경우 리디렉션이 작동하지 않는 이유가 무엇인지 궁금합니다. 언제 리디렉션을 사용하고 언제 파이프를 사용합니까? 나는 오랫동안 Linux를 사용해왔지만 여전히 이 기본적인 것들이 나를 당황하게 합니다.

도와주세요.

답변1

그만큼리디렉션 연산자명령을 stdout파일로 스트리밍 >하거나( ) 파일 내용을 stdin명령으로 스트리밍하는 데 사용됩니다( <).

그만큼파이프 운영자( |)는 프로세스의 출력 ( stdout)을 다음 프로세스로 스트리밍합니다 stdin.

첫 번째 사례를 작동시키는 유일한 방법은 임시 파일을 사용하는 것이므로 다음 두 단계를 수행해야 합니다.

cat file1 > tmpfile
wc -l < tmpfile

답변2

한 실행 파일의 FD를 다른 실행 파일의 FD에 연결하려는 경우 파이프를 사용합니다. 실행 파일의 FD를 파일에 연결하려는 경우 리디렉션을 사용합니다.

관련 정보