그래서 파일 설명자와 해당 리디렉션에 대해 더 알고 싶습니다. 현재 저는 극단적인 사례를 조사하고 있지만 1>&0
거기에서 무슨 일이 일어나고 있는지 잘 이해하지 못합니다.
$ echo hello 1>&0
hello
따라서 이 경우 hello
stdout을 stdin으로 리디렉션하더라도 인쇄됩니다. 나는 아무것도 인쇄될 것이라고 기대하지 않습니다.
hello
인쇄하려는 이유를 설명해 주시겠어요 ?
답변1
설명자 0
와 1
둘 다 읽기+쓰기 모드로 터미널에 연결되어 있으므로 이 리디렉션은 아무 것도 변경하지 않습니다. Linux에서는 /proc/self/fd
아래 내 경우와 같은 현재 설명자를 모두 찾을 수 있습니다 .
$ ls -l /proc/self/fd
lrwx------ 1 jimmij jimmij 64 Jan 3 17:42 0 -> /dev/pts/2
lrwx------ 1 jimmij jimmij 64 Jan 3 17:42 1 -> /dev/pts/2
lrwx------ 1 jimmij jimmij 64 Jan 3 17:42 2 -> /dev/pts/2
lr-x------ 1 jimmij jimmij 64 Jan 3 17:42 3 -> /proc/5263/fd
보시다시피 0
와 1
는 모두 2
의사 터미널에 연결되어 있습니다 /dev/pts/2
.