Linux 사용자 중 일부 명령은 하이픈과 함께 실행되고 다른 명령은 실행되지 않는 이유는 무엇입니까?
예 를 들어, 대비 ls -l
또는 ?rm -r
ps ax
tar xvf
역사적 이유가 있다고 생각하지만 의미는 같으니 통일하면 되지 않을까요?
답변1
답변2
대시가 없는 명령줄 옵션(예: tar
) 은 너무 많은 애플리케이션이 의존하기 때문에 제거할 수 없는 레거시 명령줄 플래그 dd
입니다 .ps
OpenBSD 매뉴얼tar
이전 스타일 옵션을 "레거시" 옵션이라고 부르지만, 이 이전 구문을 설명하기 위해 "팩형 옵션" 또는 "박스형 옵션"(또는 유사한 것)이라는 이름을 본 적이 있을 것입니다.
dd
대시가 아닌 옵션을 상속합니다.JCL(작업 제어 언어)IBM 메인프레임에서.
이러한 유틸리티 중 일부는 점선 옵션도 허용합니다.POSIX 사양ps
레거시 옵션에 대한 언급은 전혀 없습니다. 사양dd
"옵션" 대신 "피연산자"를 나열하며 tar
POSIX에 의해 전혀 표준화되지 않습니다(표준 아카이버예pax
).
또한 최신 유틸리티에서는 대시가 아닌 옵션(또는 피연산자)을 사용하여 수행할 작업을 결정합니다. 예를 들어 git commit -p
다음 에서 찾을 수 있습니다 .lxc exec
이는 실제로 의 "액션"과 매우 유사합니다 tar
. ~에서원본 tar
매뉴얼유닉스 버전 7:
tar
테이프에 파일을 저장하고 복원합니다. 해당 작업은key
매개변수에 의해 제어됩니다. 예key
최대 1개의 문자를 포함하는 문자열기능 문자그리고 하나 이상이 있을 수 있습니다기능 수정자.
ps
Unix 릴리스 3의 원래 구현가지다점선 옵션(여기서 매뉴얼 섹션은 관리 유틸리티 섹션인 1이 아닌 8입니다.) 다음 버전에서는그것은 그들을 잃는다.
참고: 텍스트 전반에 걸쳐 "옵션"과 "피연산자"라는 용어를 혼합합니다. 기술적으로 "옵션"은 대시가 포함된 단일 문자 또는 문자입니다(예: ). -a
반면 "피연산자"는 옵션이 아닙니다. 그러나 둘 다 명령줄 매개변수입니다.