Linux/Unix 명령줄에서 "--"는 무엇을 의미합니까? [복사]

Linux/Unix 명령줄에서 "--"는 무엇을 의미합니까? [복사]

중복 가능성:
"--"(이중 대시)은(는) 무슨 뜻인가요?

git diff [options] [<commit>] [--] [<path>…]

여기서 [--]의 의미를 어떻게 이해해야 할까요? 그리고 언제 사용해야 할까요?

답변1

일반적으로 --옵션의 끝을 나타내기 위해 명령에 사용됩니다. 이는 파일 이름이 "-"로 시작하거나 입력 내용을 알 수 없는 경우에 유용합니다. 다음은 그 사용 예입니다:

git diff --stat -- --file1 --file2

--file1다른 옵션이 아닌 파일 이름으로 처리됩니다.

답변2

항상 그렇듯이 명령의 맨페이지를 읽어 명령이 인수를 해석하는 방법을 이해해야 합니다.

--일반적으로 명령 옵션의 끝을 나타내는 데 사용됩니다. -. 또는 기타 매개변수로 시작하는 파일 이름을 전달하려는 경우 특히 유용합니다. 하이픈으로 시작하는 파일 이름으로 확장될 수 있는 와일드카드 앞에 이를 사용하는 것도 좋은 생각입니다. (예를 들어 이것을 시도해 보십시오 mkdir foo; cd foo; echo >-l; ls *; ls -- *.)

그러나 git diff인수가 a <commit>(비교할 개정을 나타냄)인지 a <path>(비교할 파일을 나타냄)인지 여부를 나타내는 데에도 사용됩니다. 일반적으로 추측할 수 있지만 값이 유효한 커밋이자 유효한 경로일 수 있습니다. 이 경우 를 사용하여 git diff foo --이것이 foo커밋임을 나타내거나 경로임을 git diff -- foo나타낼 수 있습니다.foo

관련 정보