mv 명령은 디렉토리 이름과 명령 옵션을 혼동합니다


12

--pycache--로 이동해야하는 디렉토리 가 __pycache__있습니다. mv다음과 같은 방법으로 명령을 사용하면 나열된 출력이 제공됩니다. 를 사용하여 CLI원하는 작업을 어떻게 수행 할 수 있습니까?

$ mv --pycache-- __pycache__
/bin/mv: unrecognized option '--pycache--/'

답변:


22

이것은 덜 일반적인 기호로 시작하는 파일 이름 / 디렉토리의 표준 문제입니다. 문제는 mv가 긴 옵션 이름으로 --pycache를 취급한다는 것입니다. 길고 짧은 옵션에 대한 자세한 내용은 getopt에 대한 맨 페이지를 참조하십시오 .

이 상황에서 표준 해결 방법은 빈 이중 대시를 사용하는 것입니다 - 명령 지시 모든 인수하기 전에 (귀하의 경우 MV를하지만, 다른 사람, 예를 들어 CP와 함께 작동합니다)로 옵션으로 다음과 어떤 치료 중지 및 치료 인수.

따라서 당신의 명령은 다음과 같습니다 :

$ mv -- --pycache--/ __pycache__

실패하지 않습니다.


8
좋은 대답이지만 나는 당신이 의미한다고 생각합니다 - 명령으로 옵션을 따르는 것을 멈추고 인수로 취급하지 말라고 명령합니다.
RoundTower

1
나는 앞에 추가로 더 휴대용 생각 ./: mv ./--pycache-- __pycache__.
케빈

3
@Kevin 인수가 파일 이름 인 경우에만 작동합니다.
starblue

16

첫 번째 문자 -mv명령에 대해 모호합니다 (또는 옵션 이름이 따르는 것을 분명하게 의미합니다).

대신 이것을 시도하십시오 :

mv ./--ppycache-- __pycache__

출처 : linux.about.com


2
- 또한 명령이 지원하지 않는 작동하는지 것으로 대체 솔루션을위한 한
Sverre Rabbelier
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.