Newham과 Rosenblatt의 "Learning the Bash Shell" 제3판 15페이지에 다음과 같은 설명이 있습니다.
filename 인수가 생략될 때 특정 UNIX 유틸리티가 표준 입력을 허용하지 않는 경우 대시(0)를 인수로 사용해 보십시오. 일부 NIX 시스템은 표준 입력을 파일로 제공하므로 /dev/stdin 파일을 입력 파일 argumnet으로 제공할 수 있습니다.
마지막 문장이 명확하지 않습니다. "표준 입력을 파일로 제공"이란 무엇을 의미합니까?
/dev/stdin
시스템에 이름이 지정된 파일을 "복제"하는 것은 위험하지 않습니까 (저는 개인적으로 Ubuntu 16.04를 사용합니다).
그런데 비슷한 경우를 겪었어요이 게시물.
답변1
생성하는 것이 아니라 /dev/stdin
사용하는 것입니다. /dev/stdin
기본적으로 표준 입력을 지원하지 않는(또는 사용하는 -
) 명령과 함께 사용할 파일을 지정하여 어쨌든 표준 입력을 사용하도록 합니다.
그러므로
cat
cat -
cat /dev/stdin
모두 cat
표준 입력에서 읽습니다( /dev/stdin
다른 파일 설명자를 사용하여 약간 다른 방식으로 사용되지만 이는 모든 경우에 동일하지 않음을 의미함). 난 아니다만들다 /dev/stdin
, 기존 장치 노드를 매개변수로 사용합니다 cat
.