
나는 이것을 해소하려고 노력하고 있습니다.불확실성사용방법에 대해 가지고 있어요이중 대시(하이픈 2개, --)를 옵션 구분 기호의 끝으로 사용합니다(긴 옵션 접두사). 누군가가 긴 옵션이암소 비슷한 일종의 영양규칙 및 긴 옵션은 --
. 그러나 이것은 단지 그것과 관련이 없다.옵션 끝구분 기호.
사용법은 다음을 완전히 준수합니다.IEEE Std 1003.1, 2013 유틸리티 구문 지침 10:
option-argument가 아닌 첫 번째 -- 인수는 옵션의 끝을 나타내는 구분 기호로 허용되어야 합니다. 다음 인수는 '-' 문자로 시작하더라도 피연산자로 처리되어야 합니다.
rm
따라서 맨페이지를 보면OSX(또는FreeBSD),AIX,솔라리스그리고HPUX- 잘 알려진 UNIX '03 등록 Unices:
- OSX, AIX 및 Solaris 1
--
에서는 구분 기호를 축어적 으로 참조합니다 .남자 RM - HPUX에서는 이에 대해 논의하지 않습니다.남자 RM그러나 해당 구분 기호를 허용하는 다른 명령이 있습니다(예:
touch
)
싱글이 있나요?유닉스 03 등록상품오늘은 할 수 없는 일이 뭐야 rm -- -foo
? 솔라리스인가요... HPUX인가요? 문서화하지 않아도 할 수 있나요? 이 시점에서 이를 해당 플랫폼의 모든 명령에 일반화할 수 있습니까?
1. Solaris 11 매뉴얼의 마지막 참고 사항은 다음과 같습니다. - - 및 a - 둘 다 동일한 명령줄에 나타나면 두 번째는 파일로 해석됩니다.그리고 처음 두 하이픈 사이에는 공백이 있습니다. 파일로 해석되는 것이 하이픈인가요 아니면 이 문맥에서 하이픈으로 시작하는 항목인가요?
답변1
솔라리스 10부터:
~ touch testfile
~ rm -- testfile
~ ls testfile
testfile: No such file or directory
~ touch testfile
~ rm -- -f testfile
-f: No such file or directory
~ ls testfile
testfile: No such file or directory
~ rm - - -f testfile
-: No such file or directory
-f: No such file or directory
testfile: No such file or directory
~
따라서 귀하의 질문에 대답하자면, Solaris 10에서는 두 번째 인스턴스가 하이픈으로 시작하면 파일로 처리됩니다.