플래그라는 파일을 만드는 방법이 궁금합니다. 예를 들어이라는 폴더를 만들려면 -a
어떤 명령을 사용합니까?
나는 노력 mkdir '-a'
, mkdir \-a
그리고 어느 쪽도 일했다. 우분투에 있습니다.
플래그라는 파일을 만드는 방법이 궁금합니다. 예를 들어이라는 폴더를 만들려면 -a
어떤 명령을 사용합니까?
나는 노력 mkdir '-a'
, mkdir \-a
그리고 어느 쪽도 일했다. 우분투에 있습니다.
답변:
다음과 같이 명령을 호출하십시오.
mkdir -- -a
--
(가) 그래서 수단은 옵션, 그 후 종료 있음 -a
을 옵션으로 문자 그대로가 아니라 해석됩니다 mkdir
. 당신은에서뿐만 아니라이 구문을 찾을 수 mkdir
있지만 제외한 모든 POSIX 호환 유틸리티 echo
와 test
. 사양에서 :
인수-옵션의 끝을 나타내는 구분 기호로 받아 들여야합니다. 다음 인수는 '-'문자로 시작하더라도 피연산자로 취급되어야합니다. -인수는 옵션 또는 피연산자로 사용해서는 안됩니다.
사용 --
안전 장치는 파일 이름을 처리하고 있는지 그들이 명령을 아프게하지 않습니다 만들고 싶어 거의 모든 행동을 권장으로 루프에서 파일을 이동할 때, 예를 들어, 당신이 파일을 호출 그래서, 다음을 호출 할 수있는 -i
'ISN 옵션으로 올바르게 구문 분석 된 t (in?) :
mv -- "$f" new-"$f"
cc -o -myfile -Wall -myfile.c
유일 약간 인위적인 예로서. 그 가치가있는 편집기는 파일 이름 -myfile.c
을 묻는 파일에 저장할 수 있어야 하지만 C 컴파일러는 옵션 목록이 주어지면 원하는 것을 수행하지 않을 것입니다.
cc
Michael이 위에서 지정한 명령 과 같이 입력 또는 출력 파일 이름을 설정하는 옵션이 필요한 명령의 경우 -o
, 출력 파일을 지정하는 옵션이 있습니다.
for f in ./*; do...
보다는for f in *; do...
합리적인 프로그램으로 작업하는 가장 간단한 방법은. 앞에 상대 경로 이름을 사용하는 것입니다 -
. 예를 들어 현재 작업 디렉토리에서 mkdir ./-a
호출되는 디렉토리를 만듭니다 -a
.
이 "트릭"을 사용하는 가장 일반적인 예는 대시로 시작하는 파일을 제거하려는 경우 rm ./-a
입니다.
./
하는 것이 좋습니다 . -rf
라는 파일을 만든 다음이라고 rm *
합니다.
--
모든 명령에 의해 이해되지는 않습니다)
--
bash 일 이라고 생각 했으므로 모든 프로그램에서 작동해야합니까?
왜 그런지 mkdir '-a'
, 또는 mkdir \-a
(따옴표 또는 백 슬래시를 사용하여) 이러한 방법 모두 당신 방지하기 위해 사용되기 때문에이 작동하지 않음은 쉘 (가능성을 bash
그들에게 특별한 의미를주는 것). -a
어쨌든 쉘에 특별한 것을 의미하지 않기 때문에 쉘에 전달되는 방법에는 영향을 미치지 않습니다 mkdir
.
지금까지처럼 mkdir
관한 한, 그것은 쉘에서 인수 목록을 수신하고 백 슬래시가 있었다, 또는 여부를 따옴표에 넣어 여부는 알 수 없습니다. 단지 하나의 주장 만 봅니다 -a
. 당신이 필요한 이유입니다--
다른 답변에 설명 된대로 .
"slhck"의 답변 외에도 때때로 작동하는 또 다른 트릭이 있습니다.
문제의 파일 이름을 다음과 같은 (다른) qoutes 2 세트 내에 넣으십시오. "'-a'"
나 '"-a"'
.
이것이 작동하는지 여부는 프로그램에 따라 다르지만 프로그램이 POSIX --
기능을 지원하지 않는 경우 최후의 수단 입니다.
POSIX 방법은 100 % 신뢰할 수 있으므로 항상 선호됩니다.
--
옵션 처리를 종료하는 데 사용 하면 파일 이름 뒤에 옵션이 필요하지 않다고 가정합니다. 항상 그런 것은 아닙니다.
'-a'
or 라는 파일을 만들 것입니다"-a"