^M을 사용하여 생성된 파일의 대상 디렉터리의 압축을 풀 때

^M을 사용하여 생성된 파일의 대상 디렉터리의 압축을 풀 때

쉘 스크립트 파일(.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) 선택으로 이동하는 것입니다.

이름을 바꾸고 저장하는 동안 모든 후행 공백을 제거하십시오. 그것은 당신의 문제를 해결해야합니다 :)

관련 정보