하이픈이 있거나 없는 명령 옵션

하이픈이 있거나 없는 명령 옵션

Linux 사용자 중 일부 명령은 하이픈과 함께 실행되고 다른 명령은 실행되지 않는 이유는 무엇입니까?

예 를 들어, 대비 ls -l또는 ?rm -rps axtar xvf

역사적 이유가 있다고 생각하지만 의미는 같으니 통일하면 되지 않을까요?

답변1

이렇게 하려면 unice의 맛이 다양했던 *nix의 역사로 돌아가야 합니다. 특히 POSIX/Unix 스타일을 사용하거나 BSD를 사용하지 않는 경우 옵션이 완전히 다르기 ps때문에 털이 많습니다 .-유닉스 전쟁읽기 시작하는 데 유용한 Wikipedia 페이지입니다.

편집하다:유닉스의 역사당신도 관심이 있을 수 있습니다.

답변2

대시가 없는 명령줄 옵션(예: tar) 은 너무 많은 애플리케이션이 의존하기 때문에 제거할 수 없는 레거시 명령줄 플래그 dd입니다 .ps

OpenBSD 매뉴얼tar이전 스타일 옵션을 "레거시" 옵션이라고 부르지만, 이 이전 구문을 설명하기 위해 "팩형 옵션" 또는 "박스형 옵션"(또는 유사한 것)이라는 이름을 본 적이 있을 것입니다.

dd대시가 아닌 옵션을 상속합니다.JCL(작업 제어 언어)IBM 메인프레임에서.

이러한 유틸리티 중 일부는 점선 옵션도 허용합니다.POSIX 사양ps레거시 옵션에 대한 언급은 전혀 없습니다. 사양dd"옵션" 대신 "피연산자"를 나열하며 tarPOSIX에 의해 전혀 표준화되지 않습니다(표준 아카이버pax).

또한 최신 유틸리티에서는 대시가 아닌 옵션(또는 피연산자)을 사용하여 수행할 작업을 결정합니다. 예를 들어 git commit -p다음 에서 찾을 수 있습니다 .lxc exec

이는 실제로 의 "액션"과 매우 유사합니다 tar. ~에서원본 tar매뉴얼유닉스 버전 7:

tar 테이프에 파일을 저장하고 복원합니다. 해당 작업은 key 매개변수에 의해 제어됩니다. 예 key 최대 1개의 문자를 포함하는 문자열기능 문자그리고 하나 이상이 있을 수 있습니다기능 수정자.

psUnix 릴리스 3의 원래 구현가지다점선 옵션(여기서 매뉴얼 섹션은 관리 유틸리티 섹션인 1이 아닌 8입니다.) 다음 버전에서는그것은 그들을 잃는다.


참고: 텍스트 전반에 걸쳐 "옵션"과 "피연산자"라는 용어를 혼합합니다. 기술적으로 "옵션"은 대시가 포함된 단일 문자 또는 문자입니다(예: ). -a반면 "피연산자"는 옵션이 아닙니다. 그러나 둘 다 명령줄 매개변수입니다.

관련 정보