특수 문자가 포함된 파일을 삭제하거나 이름을 바꾸는 방법. 명령줄에서 "-x" 사용

특수 문자가 포함된 파일을 삭제하거나 이름을 바꾸는 방법. 명령줄에서 "-x" 사용

중복 가능성:
"--"(이중 대시)은(는) 무슨 뜻인가요?

누구든지 다음 사항을 설명할 수 있습니까?

"-xyz"라는 파일이 있습니다. 명령줄을 사용하여 파일을 삭제하거나 이동하려고 하면 이동할 수 없습니다. 나는 다음과 같은 것들을 시도했습니다:

[rahul@srv100 ~]# ls -lrt  -- "-xyz"
-rw-r--r-- 1 rahul rahul 0 Dec 19 08:06 -xyz
[rahul@srv100 ~]# mv "-xyz" xyz
mv: invalid option -- x
Try `mv --help' for more information.
[rahul@srv100 ~]# mv \-xyz xyz
mv: invalid option -- x
Try `mv --help' for more information.
[rahul@srv100 ~]# mv -\xyz xyz
mv: invalid option -- x
Try `mv --help' for more information.
[rahul@srv100 ~]# mv '-xyz' xyz
mv: invalid option -- x
Try `mv --help' for more information.

마지막으로 Winscp를 사용하여 파일 이름을 바꾸고 여러 방법을 시도한 후 옵션을 얻었고 작동합니다.

mv -- '-xyz' xyz

"--"이 도움이 되기를 바랍니다. 다음 파일/디렉토리를 만들었습니다.

mkdir -- --abc
touch -- -xyz

그래서 내 질문은 bash에서 "--"가 무엇입니까? 설명 해주십시오.

답변1

다른 사람들이 이미 언급했듯이 --옵션과 인수를 구분하는 데 사용됩니다. 프로그램을 실행하고 인수를 지정하면 프로그램은 지정된 인수가 명령줄 옵션으로 해석되어야 하는지 아니면 인수로 해석되어야 하는지 구분할 수 없습니다. 이것이 바로 옵션 접두사 -/ --or 가 Windows에 도입된 이유입니다 /. 즉 -rf, --help또는/?

이와 같은 접두사 또는 해석할 수 있는 다른 특수 이름으로 시작하는 파일이 있을 수 있으므로 --명령줄 옵션을 일반 인수와 분리하는 기능이 도입되었습니다. 즉, 뒤에 오는 각 인수는 --명령줄 옵션으로 처리되지 않지만 매개변수로만 사용됩니다.getopt (1)는 구분 기호 지원과 같은 매개변수 구문 분석을 위한 표준 솔루션입니다. --이는 이를 사용하는 모든 프로그램이 getopt자동으로 --구분 기호를 지원함을 의미합니다.

특수 문자로 시작하는 파일을 처리하려는 경우 특수 문자로 시작하지 않으므로 파일 앞에 추가 -할 수도 있습니다. 따라서 명령줄 옵션으로 해석되지 않습니다. 예를 들어 다음과 같습니다../-mkdir ./--abc

답변2

이는 더 이상 명령 옵션이 허용되지 않음을 명령에 알리는 데 사용됩니다.

그래서

rm ---abc

이는 abc에서 -를 무시한다는 의미입니다.

자세한 내용은 다음을 참조하세요. http://tldp.org/LDP/abs/html/special-chars.html

답변3

추가 명령줄 인수를 옵션으로 해석하지 않도록 개별 명령에 지시합니다.

관련 정보