일부 GNU 및 GNU 유사 도구는 예를 foo -hgcf
들어 foo -h -g -c -f
.
예는 타르입니다., 예를 tar cXbf keepout 20 archive.shar *.txt
들어 tar -c -b 20 -X keepout -f archive.tar *.txt
.
매개변수를 지정하는 "압축" 또는 "짧은" 스타일에 이름이 있는 것 같습니다. 이름이 무엇인지, 이에 대해 자세히 알아보는 방법과 도구가 이를 지원하는지 확인하는 방법을 아는 사람이 있습니까?
답변1
전통적인 Unix에서 옵션은 ls -l
또는 와 같은 문자입니다 ls -d
. 어떤 경우에는 옵션이 cut -d: -f1 /etc/passwd
( -d
(구분 기호) 및 값 :
, -f
(선택할 필드) 및 값 1
)과 같은 매개변수를 허용합니다. 옵션에 인수가 없으면 를 ls -l -d -F /tmp/*
작성할 수 있습니다 ls -ldF /tmp/*
. 일부 명령은 +
의 10행에서 시작하는 것과 같이 로 시작하는 옵션을 사용합니다 more +10 file
.more(1)
file
cut --delimiter=: --fields=1 /etc/passwd
나는 위의 GNU 와 같은 긴 옵션에 대한 아이디어를 도입한 것이 87년경의 GNU 프로젝트였다고 생각합니다 cut
. 이는 더 읽기 쉬운 옵션을 제공하고 다음 문제를 해결할 것입니다.오직ls(1)
62개의 문자와 숫자, 너무 적은 옵션 gcc -c -O2 --fomit-frame-pointer xxx.c
...
일부 이단적인 명령은 로 시작하는 긴 옵션을 사용합니다 -
. 예를 convert -adjoin -authenticate passwd some.jpg graphic.gif files.png -o here.pdf
들어 (이미지 마술사, -adjoin
이미지를 합치려면 -authenticate
비밀번호가 필요합니다. 이것은 매뉴얼 페이지의 옵션 목록에서 함께 엮은 것이므로 그 조합은 아마도 의미가 없을 것입니다.
많은 명령(모두는 아니지만 사용 중인 Unix 특성에 따라 다름)은 --
"다음은 옵션처럼 보이지만 더 이상 옵션이 아닙니다"를 의미하므로 GNU를 사용하면 일반적으로 다음과 같이 생성되는 파일을 rm(1)
사용할 수 있습니다. -rf
어리석은 장난 rm -- -rf
.
답변2
C에서 참조getopt_long
그리고 bash
찾아보세요getopts