[macos] __MACOSX 폴더없이 Mac zip 압축?

Mac OSX에서 내장 된 zip 압축기로 파일을 압축하면 압축이 풀린 zip에 “__MACOSX”라는 추가 폴더가 생성됩니다.

이 폴더가 생성되지 않도록 설정을 조정할 수 있습니까? 아니면 타사 압축 도구를 구입해야합니까?

업데이트 : 방금 내 문제를 해결하는 OSX 용 프리웨어 응용 프로그램을 찾았습니다. ” YemuZip

업데이트 2 : YemuZip은 더 이상 프리웨어가 아닙니다.



답변

이 문제가 발생했을 때 명령 줄에서 수행했습니다.

zip file.zip uncompressed

많은 downvotes 후 EDIT : 나는 얼마 전에이 옵션을 사용하고 있었고 어디서 배웠는지 알지 못하므로 더 나은 설명을 줄 수 없습니다. 크리스 존슨의 대답 은 정확하지만 삭제하지는 않습니다. 한 의견에서 알 수 있듯이 압축 파일에서 파일을 제거하는 대신 파일없이 압축하므로 OP가 요구하는 내용이 더 정확합니다. 나도 기억하기 쉽다는 것을 알았습니다.


답변

에 의해 사실 후에 고칠 수 있습니다 zip -d filename.zip __MACOSX/\*


답변

터미널에서 압축하려는 폴더 내부 :

zip -r -X Archive.zip *

-X의 의미 : “_MACOSX”또는 “._Filename”과 같은 보이지 않는 Mac 리소스 파일과 .ds 저장 파일을 제외합니다.

출처

참고 : 폴더 및 후속 폴더 트리에서만 작동하며 *와일드 카드 가 있어야합니다 .


답변

이 명령은 나를 위해 그것을했다 :

zip -r Target.zip Source -x "*.DS_Store"

Target.zip작성할 zip 파일입니다. Source압축 할 소스 파일 / 폴더입니다. 그리고 _x매개 변수는 포함하지 않을 파일 / 폴더를 지정합니다. 어떤 이유로 든 위의 방법으로 작동하지 않으면 대신 시도하십시오.

zip -r Target.zip Source -x "*.DS_Store" -x "__MACOSX"


답변

이 Automator Shell Script를 사용하여 문제를 해결하고 있습니다. 상황에 맞는 메뉴 항목으로 표시됩니다 (Finder에 표시되는 파일을 마우스 오른쪽 버튼으로 클릭).

while read -r p; do
  zip -d "$p" __MACOSX/\* || true
  zip -d "$p" \*/.DS_Store || true
done
  1. Automator를 사용하여 새 서비스 생성
  2. “파인더”에서 “파일 및 폴더”를 선택하십시오.
  3. “쉘 스크립트 동작”추가

자동화 셸 스크립트

Finder의 상황에 맞는 메뉴 항목


답변

원하지 않는 폴더는 다음과 같은 방법으로도 삭제할 수 있습니다.

zip -d filename.zip "__MACOSX*"

나를 위해 가장 잘 작동


답변

zip -r "$destFileName.zip" "$srcFileName" -x "*/\__MACOSX" -x "*/\.*"
  • -x "*/\__MACOSX": 언급 한대로 __MACOSX를 무시하십시오.
  • -x "*/\.*": .DS_Store와 같은 숨겨진 파일은 무시하십시오.
  • SPACE로 이름이 지정된 파일을 피하려면 변수를 인용하십시오.

또한 Automator Service를 구축하여 Finder에서 쉽게 사용할 수 있습니다. 필요한 경우 자세한 내용을 보려면 아래 링크를 확인하십시오.

깃 허브