2014-11-26 1 views
3

일부 디렉토리에서 'cd'명령을 사용하면 재미있는 현상이 나타납니다.대상 디렉토리 이름에 "- ="가있는 cd 명령의 오류

"- = [name]"라는 이름을 여러 개 지정하여 작업중인 Windows 컴퓨터에서 이름순으로 정렬 할 때 맨 위에 정렬됩니다. 집에서는 리눅스 머신을 사용합니다. 나는 USB 스틱을 사용하여 두 컴퓨터간에 파일을 전송합니다. 나는 "cd ="명령을 사용하여 "- = [name]"형식의 이름을 가진 디렉토리에 들어갈 수 없다는 것을 알았습니다.

탭 자동 완성 기능은 디렉토리를 인식하고 올바른 양식을 제공합니다. 그래서 cd 명령은 다음과 같이 보일 것입니다 :

cd \-\=\ directory_name 

을 그러나, 나는 다음과 같은 오류 메시지가 계속 :

bash: cd: -=: invalid option 
cd: usage: cd [-L|[-P [-e]] [[email protected]]] [dir]. 

사람이 여기에 무슨 일인지 알고 있나요을?

나는 단지 내 디렉토리 이름을 변경할 수 있음을 알고 있습니다. 하지만, 나는 cd 명령으로 무슨 일이 일어나고 있는지 궁금합니다. 파일 관리자는 문제없이 디렉토리를 열 수 있습니다.

+2

'cd foo/- = bar'에서와 같이 인수 중간에'- ='가 있으면 문제가 발생하지 않습니다. '-' 문자는'cd - = bar'에서와 같이 인수의 시작 부분에있을 때만 옵션을 도입한다고 가정합니다. –

+1

이 질문은 unix.stackexchange.com에 속합니다. 하이픈으로 시작하는 파일 이름을 다루는 방법을 다루는 몇 가지 질문이 있습니다. – Barmar

+0

@Barmar : 아마 거기에 더 잘 맞을 것입니다. 그러나 쉘 스크립팅은 * 프로그래밍입니다. –

답변

2

cd -- 또는 접두어 ./을 디렉토리 이름 앞에 사용하십시오.

cd -- file_path_to\\-\=\ directory_name 

또는 그렇지 않으면 -

cd ./file_path_to\\-\=\ directory_name 

cd 명령에 대한 옵션으로 간주됩니다.

0

명령 줄 인수는 -으로 시작합니다. cd-<option>이고 -=은 유효한 옵션이 아닙니다.

거의 모든 다른 -X 문자열과 함께 표시됩니다.

$ cd -felkj 
-bash: cd: -f: invalid option 
cd: usage: cd [-L|-P] [dir] 
$ cd -j 
-bash: cd: -j: invalid option 
cd: usage: cd [-L|-P] [dir] 
$ cd -y 
-bash: cd: -y: invalid option 
cd: usage: cd [-L|-P] [dir] 

당신은 당신이 --에 인수를 종료 한 것을 cd 말할 필요 :

$ pwd 
/tmp/f 
$ ls 
-foo/ 
$ cd -foo/ 
-bash: cd: -f: invalid option 
cd: usage: cd [-L|-P] [dir] 
$ cd -- -foo/ 
$ pwd 
/tmp/f/-foo 

이 대안 이름 앞에 유효한 경로 접두사 스틱 (같은 ./-foo 또는 /tmp/f/-foo).

+0

@gniourf_gniourf 내가 틀렸다면 그것은 훌륭하다. 그리고 나는 그것을 제거 할 것이다.BSD 툴이나 다른 것들에 이식 할 수 없다는 것에 대한 토론을 막연하게 생각해 냈습니다. 그래서 분명히 잘못 될 수있었습니다. –

+1

나는 사람들이 그 태그를 사용할 때 실제로 bash를 의미한다고 생각하지 않는 경향이 있지만 다른 점에 대해서는 확실히 맞습니다. 제거되었습니다. –