명령에서“-”와“-”의 차이점은 무엇입니까? Linux 프로그램이

나는 종종 단일 대시 -또는 이중 대시 --뒤에 Linux 명령 또는 설치된 다른 Linux 프로그램이 표시됩니다.

단일 대시와 이중 대시의 차이점은 무엇입니까?

약어에 관한 것입니까? 예를 들어, 대부분의 시간을 -v의미 --verbose합니다.



답변

관습의 문제입니다. POSIX 표준 프로그램에는 일반적으로 단일 문자 옵션 만 있으며 모두 단일 하이픈으로 시작됩니다. 내가 알 수있는 한 더 긴 버전은 명확성을 위해 GNU 개선이며 일반적으로 이중 하이픈이 접두어로 붙습니다. 옵션 getoptgnu-getopt각각 을 구문 분석하는 데 사용되는 라이브러리 및 프로그램에서이를 확인할 수 있습니다 . 비 GNU 및 비 POSIX 호환 프로그램은 다른 작업을 수행 할 수 있습니다. 긴 형식의 인수가 프로그램마다 다를 수 있다는 것을 실제로 확신 할 수는 없습니다. -f일반적으로을 의미 --force하지만 apt-get install(일반적인 오해)를 의미 하지는 않습니다 . -v일반적으로 또는 --verbose등의 버전을 의미 할 수 있습니다 . 매뉴얼 페이지 또는 기타 설명서를 확인하십시오. 또한 봐getopt에에 Wikipedia 기사 . 이 모든 것이 리눅스보다 10 년 이상 앞서 있습니다.

dd의 예 는 POSIX 표준 유틸리티 어떤 하이픈 옵션이없는 전혀를 . 단일 하이픈이있는 단어 옵션이 있는 POSIX 표준 유틸리티find 의 고전적인 예입니다 . 거의 모든 find옵션은 여러 문자 길이입니다. ps여러 옵션 스타일을 지원합니다.

This version of ps accepts several kinds of options:

1   UNIX options, which may be grouped and must be preceded by a dash.
2   BSD options, which may be grouped and must not be used with a dash.
3   GNU long options, which are preceded by two dashes.

GNUtar 는 또한 여러 옵션 스타일을 지원합니다.

스크립트를 호환 가능한 환경에서 실행할 수 있으려면 사용법에있어 스크립트에서 긴 옵션을 선호하십시오. 디버깅시 선명도의 향상은 큰 도움이됩니다. 이식성을 위해 짧은 옵션이 선호됩니다.


답변

일반적으로-옵션은 다음과 같이 서로 연결될 수 있습니다 pacman -Syu 으로pacman -S -y -u -옵션은 일반적으로./configure --prefix=/usr