이것은 간단한 질문이지만 명령 줄 프로그램에서 “-“로 시작하는 파일을 어떻게 사용합니까?
예를 들어, 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를 참조하십시오 .
답변
파일 이름 앞에 ./
(또는 다른 상대 또는 절대 경로)를 추가하십시오. 이런 식으로 휴대가 편리합니다.
예:
for zefile in ./*.tmp
do
rm -f "$zefile"
done
의 사용 --
옵션의 끝을 나타 내기 위해 항상 사용할 수 없습니다. 어떤 명령은 그것을 알고 일부는 알지 못합니다. 그리고 이것은 다른 시스템에 따라 변할 것입니다. 결국 휴대 성이 떨어집니다.