![^M을 사용하여 생성된 파일의 대상 디렉터리의 압축을 풀 때](https://linux55.com/image/102864/%5EM%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%83%9D%EC%84%B1%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%8C%80%EC%83%81%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%9D%98%20%EC%95%95%EC%B6%95%EC%9D%84%20%ED%92%80%20%EB%95%8C.png)
쉘 스크립트 파일(.sh)을 사용하여 폴더의 압축을 풀려고 합니다. zip 폴더의 파일을 추출하고 있는데 내가 만든 대상 디렉터리가 ^M으로 끝나는데,
.sh 파일에서 이 명령을 사용합니다.
unzip /tmp/mram/zip/ApNonProjectExpVO.zip -d /tmp/mram/zip/
로그인 퍼티를 다음과 같이 표시합니다.
Test.sh
Tue Jan 10 23:21:21 CST 2017
Archive: /tmp/mram/zip/ApNonProjectExpVO.zip
creating: /tmp/mram/zip/^M/ApNonProjectExpVO/
inflating: /tmp/mram/zip/^M/ApNonProjectExpVO/ApNonProjectExpVO.xml
답변1
이 옵션에 대한 인수는 파일을 저장할 디렉터리를 -d
알려줍니다 . unzip
파일을 이름이 지정된 디렉터리 /tmp/mram/zip/^M
( ^M
캐리지 리턴이 있는 위치)에 넣으라고 unzip을 지시했으므로 지시한 대로 정확하게 수행됩니다.
줄 끝의 CR 문자를 모두 제거하면 다른 문제가 발생할 수 있으므로 스크립트를 수정하세요. Unix에서 CR은 Windows에서처럼 줄 끝 표시의 일부가 아닌 일반 문자입니다.
Windows에서 셸 스크립트를 편집할 때는 항상 Unix 줄 끝(LF만 해당)을 사용하도록 편집기를 구성해야 합니다.
답변2
Windows에서 스크립트를 작성하는 경우 가장 쉬운 방법은 Notepad++에서 스크립트 파일을 열고 편집 > EOL 변환 > Unix(LF) 선택으로 이동하는 것입니다.
이름을 바꾸고 저장하는 동안 모든 후행 공백을 제거하십시오. 그것은 당신의 문제를 해결해야합니다 :)