어딘가에서 리디렉션을 사용하는 것을 보고 오타라고 생각했습니다.
grep root < /etc/passwd
하지만 실행한 후에는 동일한 출력이 나오는 것을 볼 수 있습니다
grep root /etc/passwd
.
$ grep root < /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
같은 일이 일어났습니다.
cat < /etc/passwd
cat /etc/passwd
그러나 다음 명령과 함께 사용하면 리디렉션이 무시됩니다 ls
.
ls < /etc/passwd
동일한 출력을 인쇄하지 않습니다
ls /etc/passwd
뭐가 문제 야?
답변1
파일과 함께 작동하는 많은 유틸리티는표준 입력(표준 입력)을 스트림 입력으로 사용하거나 파일 이름을 인수로 받아들입니다. 귀하의 < file
예제는 파일 출력을 유틸리티로 리디렉션합니다. 파일은 쉘에 의해 열리고 다음을 통해 유틸리티로 전달됩니다.표준 입력..
반면에 cat file
,고양이열기 및 읽기 처리문서이며 리디렉션이 포함되지 않습니다.
ls
파일은 읽히지 않으므로 파일 이름을 인수로 사용하지 않습니다.열어서 읽어보세요file.. (파일 이름 마스크를 허용합니다)... 의 경우 ls
쉘의 열린 파일을 읽는 프로세스가 없기 때문에 리디렉션 작업이 실제로 무시됩니다...
유틸리티가 어떻게 작동하는지 확인하려면 man utility-name
터미널...을 입력하십시오.남성는 약어이다수동...예를 들어. man cat
당신에게 선물고양이 핸드북