"tar --anchored"에서는 이중 하이픈을 사용하고 "tar -b"에서는 단일 하이픈을 사용하는 이유는 무엇입니까? [복사]

"tar --anchored"에서는 이중 하이픈을 사용하고 "tar -b"에서는 단일 하이픈을 사용하는 이유는 무엇입니까? [복사]

tar --anchored에서는 왜 이중 하이픈을 사용 하고 에서는 단일 하이픈을 사용합니까 tar -b?

왜 일부 명령줄 옵션에는 단일 하이픈(-)이 있고 다른 명령줄 옵션에는 이중 하이픈(--)이 있습니까?

다른 git예시:

git commit --amend
git commit -a

답변1

전통적으로 긴 옵션(한 글자 이상)은 두 개의 대시로 작성하고, 짧은 옵션(한 글자)은 한 개의 대시로 작성합니다. 그러나 모든 프로그램이 이를 존중하는 것은 아닙니다.

내가 찾을 수 있는 가장 오래된 참고 자료 중 하나는 다음과 같습니다.http://www.gnu.org/fun/jokes/long-options.html.

답변2

이것은 합의이다:

  • 대시는 다음을 나타냅니다(또는 많은) 약식 매개변수:

    command -abc
    
  • 축약되지 않은 단일 인수의 경우 Double:

    command --alice --barry --catherine
    

이것은 단지 합의일 뿐이라는 점은 주목할 가치가 있습니다. 모든 명령은 대시에 관계없이 모든 스타일의 인수를 사용할 수 있습니다(셸에서 이스케이프된 경우). 여기에 있는 예제가 command이를 허용하도록 프로그래밍된 경우 다음은할 수 있다위 예의 유효한 동의어입니다.

command abc
command alice barry catherine

이것은 끔찍한 예일 수 있지만 제가 이해하려고 하는 것은 이것이 인수를 위치가 아닌 인수로 처리하는 메서드에 대한 규칙이라는 것입니다. 당신이 원하지 않는 것들이 있습니다. 어떤 것들은 단일 대시만 사용합니다. 어떤 것들은 대시(크로스 컴파일된 Windows 앱이 여전히 사용하는 것을 본 적이 있음) 이외의 문자를 사용합니다 /... 실제로는 그렇게 큰 차이를 만들지 않습니다.

답변3

다른 사람들이 이미 말했듯이 이것은 약어에 단일 빼기 기호를 사용하기 위해 GNU 프로젝트에서 시작한 규칙입니다. 이는 한 문자 길이의 옵션을 의미하고, 긴 옵션에 이중 빼기 기호를 사용합니다. 옵션이 한 글자보다 깁니다. 이 규칙은 GNU 외부의 많은 프로젝트에서 잘 확립되어 사용되지만 도입되었을 때 짧은 옵션만 사용하는 데 익숙했던 일부 사람들을 혼란스럽게 했습니다. 그러나 더 많은 것이 있습니다:

  • 일부 프로그램, 예를 들어자식긴 옵션의 첫 문자 앞에는 하나의 빼기 기호가 허용됩니다. 이 경우 이 옵션은 두 개의 빼기 기호와 전체 옵션 이름이 제공된 것처럼 이 문자로 시작하는 긴 옵션으로 확장됩니다. 예를 들어:

$ git pull -r

다음과 동일:

$ git pull --rebase

  • GNU와 같은 일부 프로그램날짜git과 비슷하지만 앞에 두 개의 빼기 기호가 있는 경우 일부 긴 이름 옵션만 확장합니다.

$ date --s

다음과 동일:

$ date --set

  • 일부 프로그램, 예를 들어바보또는자식옵션 뒤와 값 앞의 공백을 생략할 수 있습니다.

$ mutt -f/var/mail/user

다음과 동일:

$ mutt -f /var/mail/user

  • GUN과 같은 일부 프로그램RM개별 옵션을 그룹화할 수 있습니다. 예를 들어:

$ rm -rv dir

다음과 동일:

$ rm -r -v dir

  • 인수가 포함된 옵션을 사용하는 일부 프로그램은 빈 이중 빼기 옵션을 사용하여 옵션의 끝을 표시합니다. 예를 들어, 다음을 사용하려는 경우만지다명령은 빼기 기호로 시작하는 파일을 생성합니다. 다음을 수행해야 합니다.

$ touch -- -file

그것은 모두 특정 소프트웨어가 옵션을 해석하는 방법에 따라 다릅니다.

또한 "-"당신이 언급하고 있는 기호를 주목하세요하이픈라고줄이다대부분의 Unix 사용자의 경우 이는 주로 일부 프로그램이 더하기 기호(엑스예를 들어). 바라보다여기.

답변4

rmdir --ignore-fail-on-non-empty {directory} ...

전체 단어 앞에 이중 대시(--)가 표시됩니다. 그렇지 않으면 시작 부분에 대시가 있는 단일 문자(-)를 사용하면 됩니다.

다음과 같은 다른 설명서를 확인하세요.rmdir수동, 사용 가능한 옵션 표가 표시됩니다.

-p
--ignore-fail-on-non-empty
-f, --force
-r, -R, --recursive
-v, --verbose

관련 정보