나는 셸에서 일하는 것이 처음이며 이러한 명령의 사용법은 임의적입니다. 하나의 플래그에 단일 대시가 있고 다른 플래그에 이중 대시가있는 이유가 있습니까?
나는 셸에서 일하는 것이 처음이며 이러한 명령의 사용법은 임의적입니다. 하나의 플래그에 단일 대시가 있고 다른 플래그에 이중 대시가있는 이유가 있습니까?
답변:
하나의 하이픈 뒤에 여러 개의 단일 문자 플래그가 올 수 있습니다. 이중 하이픈은 단일 다중 문자 옵션 앞에 붙습니다.
이 예제를 고려하십시오.
tar -czf
이 예에서는 -czf
3 개의 단일 문자 플래그를 지정 c
, z
및 f
.
이제 다른 예를 보자.
tar --exclude
이 경우 --exclude
라는 단일 다중 문자 옵션을 지정 exclude
합니다. 이중 하이픈 그 보장, 명령 줄 인수들의 차이를 tar
그와 같은 해석 exclude
보다는 조합 e
, x
, c
, l
, u
, d
,와 e
.
cdrecord
위의 의견에서 몇 년 전에 언급 한 것처럼 .
그것은 모두 프로그램에 달려 있습니다. 일반적으로 "-"는 '짧은'옵션 (한 글자, -h)에 사용되고 "-"는 "long"(er) 옵션 (--help)에 사용됩니다.
일반적으로 짧은 옵션을 결합 할 수 있습니다 ( "-h -a"는 "-ha"와 동일)
유닉스 계열 시스템에서 ASCII 하이픈-마이너스는 일반적으로 옵션을 지정하는 데 사용됩니다. 문자 뒤에 보통 하나 이상의 문자가옵니다. 문자가없는 단일 하이픈 빼기 인수는 일반적으로 프로그램이 표준 입력에서 오는 데이터를 처리하거나 표준 출력으로 데이터를 보내도록 지정합니다. 일부 프로그램에서는보다 설명적인 옵션 이름이 사용되는 "긴 옵션"을 지정하기 위해 두 개의 하이픈 (-) 문자 (-)가 사용됩니다. 이것은 GNU 소프트웨어의 일반적인 기능입니다.
정말 컨벤션입니다. 그러나 파서는 프로그램에 전달 된 옵션에 대해보다 효율적으로 알 수 있습니다. 또한 프로그램의 인수를 구문 분석하는 데 도움이 getopt(3)
되는 비표준 과 같은 이러한 명령을 구문 분석하는 데 도움이되는 깔끔한 유틸리티가 있습니다 getopt_long(3)
.
다른 답변 에서처럼 여러 개의 짧은 옵션을 결합 할 수 있기 때문에 tar -xzf myfile.tar.gz
좋습니다.
에 대해 "리사"인수가 있었다면 ls
, 아마 입력 할 다른 의미가있는 것 ls -lisa
이상을 ls --lisa
. 전자는있다 l
, i
, s
, 및 a
매개 변수가 아닌 단어.
실제로, ls -l -i -s -a
와 정확히 동일한 의미로 쓸 수는 ls -lisa
있지만 프로그램에 따라 다릅니다.
이 규칙을 따르지 않는 프로그램도 있습니다. 특히 내 시야에, dd
그리고 gcc
.