이것은 간단한 질문이지만 명령 줄 프로그램에서 "-"로 시작하는 파일을 어떻게 사용합니까?
예를 들어, pdfgrep
이름이 지정된 파일 에서 사용하려고하는데 -2013-01-01.pdf
2, 0, 1, 3 등에 대해 정의 된 옵션이 없다고 불평합니다.
파일 이름을 "-"로 시작하지 않는 파일 이름으로 변경하면 파일 이름이 해결되지만 파일을 직접 만들지 않으므로 옵션이 아닙니다. 내가 알고있는 특정 변경 사항을 확인하고 싶습니다.
이것은 간단한 질문이지만 명령 줄 프로그램에서 "-"로 시작하는 파일을 어떻게 사용합니까?
예를 들어, pdfgrep
이름이 지정된 파일 에서 사용하려고하는데 -2013-01-01.pdf
2, 0, 1, 3 등에 대해 정의 된 옵션이 없다고 불평합니다.
파일 이름을 "-"로 시작하지 않는 파일 이름으로 변경하면 파일 이름이 해결되지만 파일을 직접 만들지 않으므로 옵션이 아닙니다. 내가 알고있는 특정 변경 사항을 확인하고 싶습니다.
답변:
--
사용 가능한 명령 스위치가 더 이상 사용되지 않음을 프로그램에 알리기 위해 명령 줄에서 매우 자주 사용됩니다. 이 옵션은 파일에 대시가 포함 된 경우 프로그램에서 옵션으로 해석하려고 할 때 특히 유용합니다.
이 없으면 --
오류가 생성됩니다.
$ pdfgrep -i posix -find.pdf -xorg.pdf
pdfgrep: invalid option -- 'f'
pdfgrep: invalid option -- 'd'
pdfgrep: invalid option -- '.'
pdfgrep: invalid option -- 'p'
pdfgrep: invalid option -- 'd'
pdfgrep: invalid option -- 'f'
사용하면 --
성공적인 명령이 있습니다.
$ pdfgrep -i posix -- -find.pdf -xorg.pdf
-find.pdf: on the command line. Currently-implemented types are emacs (this is the default), posix-awk,
-find.pdf: posix-basic, posix-egrep and posix-extended.
-find.pdf: posix-basic, posix-egrep and posix-extended.
-find.pdf: posix-basic, posix-egrep and posix-extended.
pdfgrep
--
다음 명령 줄 인수가 옵션이 아님 을 이해 하도록 프로그래밍되었습니다 . 대부분의 프로그램은 동일하지만 모든 프로그램이 이해하는--
것은 아닙니다 . 그렇지 않은 프로그램의 경우 해결책은 ./
다음과 같이 파일 이름 앞에을 추가하는 것입니다.
pdfgrep -i posix ./-find.pdf ./-xorg.pdf
어떤 이유로 명령이 경로를 허용 할 수없고 순수한 파일 이름 만 허용하지 않는 한 모든 명령에서 작동합니다.
명령 행에 대한 일반적인 소개는 이 유용한 PDF를 참조하십시오 .
--
하지는 않습니다 . 나는 그 의견에서 OP 를 인식하지 못하는 OP 중 하나 라고 가정했습니다 . 그러나 여기에 동의하면 다른 제안이 있습니다. 어쨌든 프로그램을 인식하도록 코딩해야합니다 . 많은 프로그램은 라이브러리를 사용하여 인수를 구문 분석합니다 . 그러나 일부는 인식하지 못하고 일부는 인식하도록 코딩되지 않았습니다 . pdfgrep
--
--
--
--
--
일반적인 해결 방법을 인식하지 못하는 프로그램 ./
의 경우 파일 앞에 pdfgrep ./-2013-01-01.pdf
./
앞에 놓는 것이 가장 휴대 성이 뛰어나고 강력한 솔루션입니다. 모든 프로그램, 모든 유닉스 버전에서 작동합니다.