Linux에서 "Mac 스타일" 압축 풀기

Linux에서 "Mac 스타일" 압축 풀기

관련성이 있는 경우를 대비해 Linux Mint MATE 버전을 사용하고 있습니다.

이것이 Dropbox에만 해당되는지는 모르겠지만 원래 Mac에서 생성된 폴더(및 중첩된 하위 폴더가 많이 있음)의 Dropbox에서 zip을 다운로드하여 Linux 시스템에 추출하면 완전히 혼란스럽습니다. 정리: 모든 폴더에는 이름의 소문자 버전이 포함된 복사본이 있으며 하위 파일은 원본 대신 복사본에 나타납니다. Mac을 사용하는 동료 중 한 명이 동일한 zip의 압축을 풀어도 문제가 되지 않습니다.

이것이 내가 얻어야 할 것입니다:

여기에 이미지 설명을 입력하세요.

이것이 내가 실제로 얻는 것입니다:

여기에 이미지 설명을 입력하세요.

내 생각엔 이것이 Mac 파일 이름이 대소문자를 구분하지 않는다는 사실과 관련이 있는 것 같습니다. 따라서 파일 시스템 메타데이터 사이에 이상한 비호환성이 있습니다.

Mac 압축 해제기의 동작을 복제하거나 다른 방법으로 올바른 결과를 생성할 수 있는 linuz 압축 해제 도구를 아는 사람이 있습니까? 기본 폴더에 문제가 없으면 _MACOSX 폴더를 거기에 남겨두어도 상관 없습니다(삭제할 수 있음).

답변1

문제는 zip 파일이 디렉터리 이름에 일관되지 않은 대소문자 변형을 사용한다는 것입니다. 이것이 바로CIOPFS파일 시스템의 목적: 디렉토리 트리에 대해 대소문자를 구분하지 않는 보기를 제공합니다. 우분투 패키지가 있습니다. 임시 디렉터리에 ciopfs 파일 시스템을 마운트하여 기존 디렉터리의 보기를 생성하고 해당 보기에서 zip의 압축을 풀면 원래 디렉터리에 추출된 아카이브가 표시됩니다.

mkdir ~/case-insensitive
ciopfs ~/temp ~/case-insensitive
cd ~/case-insensitive
unzip -x __MACOSX -x '__MACOSX/*' /path/to/zip
cd ~/temp
fusermount -u ~/case-insensitive

만약 어떤 이유로 이것이 효과가 없다면, 나의 다음 후보는파이썬 zipfile라이브러리().

관련 정보