sort "$f1"
로 $f1
시작 -
하거나 sort
일부로 시작 하는 경우 +
( -o/etc/passwd
예를 들어 파일에 심각한 결과를 초래할 수 있는 경우) 또는 여기서 시작하는 값에 실패합니다 .
sort -- "$f1"
( --
옵션의 끝을 알리는)은 이러한 문제의 대부분을 해결하지만 여전히 stdin을 의미 -
하는 sort
것으로 불리는 파일에 대해서는 실패합니다 .
sort < "$f1"
그런 문제가 없습니다.
여기가 파일을 여는 셸입니다. 또한 파일을 열 수 없으면 잠재적으로 더 유용한 오류 메시지가 표시됩니다 (예 : 대부분의 셸은 스크립트에 줄 번호를 표시 함). 가능한 경우 파일을 열 때 리디렉션
그리고
sort < "$f1" > out
(와 반대로 sort -- "$f1" > out
) "$f1"
열 수 없으면 out
생성 / 잘라내 sort
거나 실행되지 않습니다.
혼동 가능성을 없애기 위해 (아래 설명에 따름), 파일 자체 mmap()
를 검색 할 수있는 경우 명령 이 파일을 가져 오거나 파일 lseek()
내부로 들어가는 것을 방해하지 않습니다 sort
. 유일한 차이점은 파일이 다른 파일 디스크립터에서 나중에 명령과 반대로 쉘이 파일 디스크립터 0에서 이전에 열린다는 것입니다. 이 명령은 원하는대로 fd 0을 탐색 / mmap 할 수 있습니다. 그것은 cat file | cmd
이번에 cmd
stdin이 mmaped / seeked 할 수없는 파이프 인 곳 과 혼동되어서는 안됩니다 .