bash에서 "-"를 피하는 방법 [중복]


14

가능한 중복 :
유닉스 도구 : 파일 이름을 빼면 어떻게 될까요?

이것을 피하는 방법을 알려주십시오.

[root @ unix ~] # ./-sh
-bash : ./-sh : 권한이 거부되었습니다
[root @ unix ~] # chmod + x -sh
chmod : 유효하지 않은 모드 :`-sh '
자세한 정보는`chmod --help '를 시도하십시오.
[root @ unix ~] #

# chmod a + x "\\-sh"chmod :`\\-sh '에 접근 할 수 없습니다 : 그러한 파일이나 디렉토리가 없습니다
soundhax

답변:


24

사용하십시오 --.

chmod +x -- -sh. GNU 언어에서는 --옵션의 끝을 의미하므로 -sh더 이상 옵션으로 구문 분석되지 않습니다.

[편집] 추가 된 예 :

딱정벌레 : / home / hennes / test> touch--sh

딱정벌레 : / home / hennes / test> ls -l--sh
-rw ------- 1 편 사용자 0 2013-01-04 17:20 -sh

딱정벌레 : / home / hennes / test> chmod + x--sh

딱정벌레 : / home / hennes / test> ls -l--sh
-rwx ------ 1 편 사용자 0 2013-01-04 17:20 -sh

흥미롭게도 GNU echof에서는 작동하지 않지만 GNU printf에서는 작동합니다. 이것은 작동합니다 : printf -- -sh. 그리고 이것은하지 않습니다 : echo -n -- -sh.
Lukas Pokorny 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.