Linux/Unix에서 입력/출력 리디렉션은 어떻게 작동합니까?

Linux/Unix에서 입력/출력 리디렉션은 어떻게 작동합니까?

예:

고양이<test.txt

  1. 파일의 내용이 test.txtstdin에 작성/전달된 cat다음 catstdin에서 읽혀집니까?

또는

  1. 파일 test.txt자체가 표준 입력이 되나요 cat? 즉, 텍스트 파일의 파일 디스크립터(fd)를 0으로 설정하면 catstdin이 변경되는 걸까요?test.txt

답변1

옵션 번호 2: 표준 입력을 test.txt열고 cat이 파일을 가리키도록 설정합니다(중복된 파일 설명자따라서 최종 실행 프로세스에서는 0 )입니다 cat.

Linux에서는 다음을 실행하여 이를 확인할 수 있습니다.

$ touch /tmp/foo
$ sleep 120 < /tmp/foo &
[1] 3006118
$ ls -l /proc/3006118/fd
total 0
lr-x------ 1 steve steve 64 May  4 16:11 0 -> /tmp/foo
lrwx------ 1 steve steve 64 May  4 16:11 1 -> /dev/pts/3
lrwx------ 1 steve steve 64 May  4 16:11 2 -> /dev/pts/3

프로세스의 표준 입력은 /tmp/foo간단합니다.

관련 정보