Kompresuj bez plików .DS_Store i __MACOSX

25

Gdy kompresuję folder lub plik, klikając menu prawym przyciskiem myszy w systemie Mac OS X, zarchiwizowany plik zawiera foldery .DS_Store i __MACOSX . Ponieważ udostępniam zarchiwizowany plik online do pobrania, użytkownicy systemu Windows omyłkowo próbują wyszukać plik w folderze __MACOSX .

Potrzebuję czystszej opcji archiwizacji. Nie chcę dołączać .DS_Store i __MACOSX folderu, ale tylko plik lub folder do pliku archiwum.

Wszystko, co znalazłem, to CleanArchiver, ale jest to aplikacja GUI. Naprawdę zajmuje to dużo czasu i mam wiele plików do kompresji. Jeśli to możliwe, szukam rozwiązania według menu kontekstowego.

Czy jest jakieś rozwiązanie, które możesz polecić do czystego kompresji?

John Bernard
źródło

Odpowiedzi:

33

Możesz użyć polecenia zip w Terminalu, aby spakować pliki bez plików .DS_Store , __MACOSX i innych. *.

Otwórz terminal (wyszukaj terminal w centrum uwagi)
Przejdź do folderu, który chcesz skompresować za pomocą polecenia cd
Wklej tozip -r dir.zip . -x ".*" -x "__MACOSX"

Przykład: załóżmy, że masz na pulpicie folder o nazwie Folder z elementami do skompresowania.
Otwórz terminal i napisz następujące polecenia:
cd Desktop/Folder
zip -r dir.zip . -x ".*" -x "__MACOSX"

Teraz masz plik o nazwie dir.zip bez plików __MACOSX i. * W folderze Folder na pulpicie.

iTunes
źródło
1
+1 Czy możesz zawinąć to w usługę automatyzacji?
fd0
4
Technicznie rzecz biorąc, jeśli użyjesz zipdo utworzenia pliku zip, „__MACOSX /” nie zostanie utworzony w pierwszej kolejności, więc wszystko, czego naprawdę potrzebujesz, to zip -r dir.zip .. Jednak jeśli „__MACOSX /” jakoś tam się wślizgnie, twoje rozwiązanie się go pozbędzie.
Edward Falk,
2
Możesz również łatwo sprawdzić, czy plik zip nie zawiera __MACOSX, wpisując w konsolizipinfo dir.zip
Fostah
13

Po prostu dodatkowe informacje ...

Rozumiem, że __MACOSX to podkatalog sztucznie utworzony przez narzędzia Mac GUI do przechowywania metadanych, takich jak rozszerzone atrybuty, których normalnie nie można zapisać w pliku zip.

Jeśli użyjesz narzędzi Mac GUI do rozpakowania pliku zip, narzędzia będą wiedziały, co zrobić z __MACOSX, a katalog nie rozpakuje się.

Problemy występują, gdy wysyłasz plik .zip do użytkowników systemu Windows lub Linux albo po prostu używasz programu ogólnego przeznaczenia unzip, aby je rozpakować. Te narzędzia nie będą wiedziały, że __MACOSX jest wyjątkowy i po prostu go rozpakuje.

Najprostszą opcją jest zipspakowanie pliku zip zamiast wbudowanego narzędzia Mac. zipnie utworzy __MACOSX, a twój problem zostanie rozwiązany. (W tym procesie stracisz metadane, ale prawdopodobnie i tak nie chciałeś.)

zip -r dir.zip .

Jeśli jest już za późno i masz już plik zip w __MACOSX, nadal możesz go usunąć za pomocą:

zip -d foo.zip __MACOSX .DS_Store

Wreszcie, zaakceptowana odpowiedź jest najlepsza, ponieważ jeśli z jakiegoś powodu __MACOSX faktycznie istnieje w twoim katalogu (np. Ponieważ wcześniej unzipgo tworzyłeś ), opcja -x zapobiegnie spakowaniu.

Edward Falk
źródło
4

Spróbuj Keka . Posiada opcję wykluczenia .DS_Store

wprowadź opis zdjęcia tutaj

ohho
źródło
2

Tylko jeden, którego naprawdę kiedykolwiek użyłem, to BetterZip [20 $]

Jest to aplikacja GUI, ale ma obsługę Applescript & Services, dzięki której można uruchamiać ustawienia domyślne z domyślnymi ustawieniami - w tym pomijać pliki specyficzne dla komputerów Mac, takie jak .DS_Store i __MACOSX. Być może warte obejrzenia.

Z pomocy BetterZip ...

BetterZip obsługuje dwie usługi: jedną do rozpakowywania i drugą do tworzenia archiwów. Możesz skonfigurować działanie usług BetterZip z ustawieniami wstępnymi.

Aby skorzystać z usługi, wybierz jeden lub więcej plików lub folderów w Finderze i wybierz Kompresuj za pomocą BetterZip lub Rozpakuj za pomocą BetterZip z Findera> menu Usługi lub podmenu Usługi w menu kontekstowym.

Możesz nawet ustawić skróty klawiaturowe dla usług BetterZip, np. ^ ⌥⌘C do kompresji i ^ ⌥⌘E do rozpakowywania. Aby ustawić skróty do usług, przejdź do Preferencji systemowych> Klawiatura> Skróty klawiaturowe i wybierz Usługi w lewej tabeli. W prawej tabeli przewiń do Pliki i foldery, wybierz Kompresuj za pomocą BetterZip i naciśnij ↩. Pojawi się edytowalne pole tekstowe. Naciśnij żądany skrót.

Jeden z moich zapisanych ustawień ...

wprowadź opis zdjęcia tutaj

Tetsujin
źródło
To dobra opcja GUI dla użytkowników Setapp.
Leo