하위 디렉터리 내에서 파일의 압축을 풀려고 하면 오류가 발생함: 주의: 파일 이름이 일치하지 않음

하위 디렉터리 내에서 파일의 압축을 풀려고 하면 오류가 발생함: 주의: 파일 이름이 일치하지 않음

따라서 zip 파일을 반복하고 unzip -l $filename을 사용하여 내용을 나열하고 패턴과 일치하는 항목을 찾는 스크립트가 있습니다. (.*)report.xml이 경우에는 test0\report.xml

unzip -j $filename하지만 을 사용하여 압축을 풀려고 하면caution: filename not matched: test0\report.xml

나는 다음을 나열하는 파일을 중지하고 수동으로 시도했습니다.

7285 2018-05-04 13:34 test0\report.xml

그런 다음

unzip -j 2747693b-7027-44d3-98f4-a01f1ed139cf.zip test0\report.xml

나에게 오류가 발생합니다.caution: filename not matched: test0report.xml

나는 \\그것을 탈출하기 위해 전화를 시도했지만 같은 오류가 발생했지만 test0\report.xml대신 말했습니다.

나는 \, / 또는 //와 같은 모든 것을 시도했기 때문에 이것이 역슬래시 이스케이프 문제라고 생각하지 않습니다.

도와주세요.

답변1

내 쿠분투에서 문제를 재현했습니다. 파일 이름은 문자 그대로였고 test0\report.xml내가 그랬을 때

unzip -j foo.zip test0\\report.xml

unzipfilename not matched: test0\report.xml받은 문자열이 일치해야 하지만 반환된 것 같습니다.

이 도구는 일부 와일드카드를 지원합니다. 다음 명령을 사용하여 파일의 압축을 풀 수 있었습니다.

unzip -j foo.zip 'test0?report.xml'

버그? 내 생각에는 스크립트에 몇 가지 논리를 추가하거나 그런(희귀하기를 바라는) 상황이 다시 발생할 때마다 손으로 압축을 풀어야 할 것 같습니다. 또는 스크립트에서 unzip일치하는 대신에 지원되는 다음 와일드카드를 활용하여 작업을 수행하십시오.(.*)report.xmlunzip

unzip -j foo.zip '*report.xml'

관련 정보