Jak zatrzymać tworzenie ukrytego folderu __MACOSX podczas kompresji plików / folderów w Finderze

3

Podczas kompresji plików / folderów w Finderze, za pomocą menu kontekstowego, tj. Wybierz pliki / foldery, a następnie kliknij prawym przyciskiem myszy i wybierz Kompresuj ..., w archiwum zip zostanie utworzony ukryty folder o nazwie __MACOSX.

Jak ukryty folder o nazwie __MACOSX nie może zostać utworzony w archiwum zip?

Roei Hazout
źródło
Witamy w Ask Different. :) Niestety, twoje pytanie nie dostarcza wystarczająco szczegółowych informacji, abyśmy mogli Ci pomóc. Czytanie jak zadać pytanie może zwiększyć szanse na uzyskanie dobrej odpowiedzi. Na razie, proszę edytować Twoje pytanie, aby wyjaśnić, co się naprawdę dzieje. W szczególności, czy możesz rozwinąć to, co rozumiesz przez tworzenie ukrytego folderu? Czy to znajduje się w archiwum? A może masz na myśli, że dostajesz tylko pusty folder (tzn. Nic nie jest archiwizowane)? Albo coś innego?
Monomeeth
1
Domyślnie pliki / foldery skompresowane w Finderze są kontynuowane za pomocą programu Archive Utility, a ta aplikacja nie ma preferencji ustawień, aby zachować meta-dane z przeniesienia dodane do archiwum. Musisz użyć rozwiązania innej firmy lub innych narzędzi / metod wbudowanych w system MacOS, tj. Za pomocą narzędzi wiersza poleceń, takich jak ditto, zip lub utworzenie usługi Automator w celu wykonania czynności niezbędnych do osiągnięcia celu itp.
user3439894
Jakiej wersji OS X / macOS używasz?
user3439894

Odpowiedzi:

5

Używając informacji z drugiej odpowiedzi, oto Usługa Automator który stanie się dostępny w Znalazca usunąć „__MACOSX” metadane folder z pliku archiwum zip.

Aby utworzyć usługę:

  1. otwarty Automator i wybierz: Plik & gt; Nowy & gt; Usługa

  2. Zestaw Wybrano usługę do pliki lub foldery i w do Znalazca .

  3. Dodać Uruchom skrypt powłoki Akcja , ustawienie Muszla: do / bin / bash i Wejście wejściowe: do jako argumenty podczas zastępowania domyślnego kod z następującymi kod :

    for f in "$@"; do
        if [[ ${f##*.} =~ ^[zZ][iI][pP]$ ]]; then
            zip -d "$f" "__MACOSX*"
        fi
    done
    afplay /System/Library/Sounds/Purr.aiff
    
    • Co kod robi: sprawdza, czy każdy plik przekazany do usługi ma rozszerzenie zip, niezależnie od przypadku i czy ma rozszerzenie zip, a jeśli „__MACOSX” istnieje w archiwum zip, usuwa „__MACOSX” folder metadanych z archiwum zip.

    • ${f##*.} pobiera rozszerzenie pliku, =~ testuje regex i ^[zZ][iI][pP]$ regex dopasowuje dowolną kombinację liter każdej litery w ciągu szelki kwadratowe podczas ^ potwierdza pozycję na początku łańcucha i $ potwierdza pozycję na końcu łańcucha. Więc pasuje tylko zip w każdym razie połączenie tych liter.

    • Uwaga: Ostatnia linia kod jest opcjonalny, aby poinformować Cię o zakończeniu usługi i może zostać zmieniony na inny dźwięk lub pominięty, jeśli wolisz nie być powiadamiany dźwiękiem po zakończeniu.

  4. Zapisz Usługa jak np.: Usuń „__MACOSX” z archiwum Zip

Aby skorzystać z usługi:

W Znalazca lub na Pulpit jeśli archiwum zip znajduje się tam, wybierz archiwum zip, a następnie kliknij prawym przyciskiem myszy i wybierz Usuń „__MACOSX” z archiwum Zip z menu kontekstowego lub poniżej Usługi w menu kontekstowym lub z Usługi na Znalazca menu odpowiednio.

Obraz usługa w Automator , poniżej, pochodzi z OS X 10.8.6, jednak został przetestowany pod MacOS 10.12.5 i działa tam również.

Automator Service

user3439894
źródło
Dobra robota. Czy chciałbyś, żebym dokonał edycji, aby wyjaśnić, dlaczego te foldery poprawnie istnieją, gdy kodujesz pliki HFS + lub spekulacje, które są lepsze, ponieważ są to własne odpowiedzi?
bmike
@bmike, wcale nie brzmi jak wartość dodana ... dzięki.
user3439894
Wspaniale. Dziękuję ii za pracę. czy to możliwe, że usługa skompresuje i usunie pliki. wszystko za jednym kliknięciem?
Roei Hazout
2

Jak powiedział użytkownik3439894, wypróbuj rozwiązanie innej firmy. Korzystam z bezpłatnej aplikacji Keka z sukcesem, długoterminowo:

http://www.kekaosx.com/en/

Skonfiguruj w preferencjach Keka, aby nie tworzyć plików specyficznych dla Mac w archiwach. Można go również użyć za pośrednictwem menu kontekstowego (po dodaniu „Kompresuj z Keka.workflow” do folderu „~ / Library / Services”), zobacz link w lewym dolnym rogu strony internetowej.

rudo.ba
źródło
1

Z WP Guru - Jak usunąć __MACOSX z archiwów zip

Najpierw utwórz ZIP za pomocą wyszukiwarki - tak jak zawsze. Następnie otwórz   Terminal i przejdź do katalogu, w którym znajduje się plik ZIP. Jeśli   jest to długa ścieżka, wystarczy wpisać „cd”, a następnie przeciągnąć folder do Terminalu   (mniej pisania jest zawsze dobre).

Teraz wpisz następujące polecenie:

zip -d your-archive.zip "__MACOSX*"

I to powinno to zrobić. To   polecenie (zip) usunie wszystko (-d) zaczynając od __MACOSX z   Twój plik ZIP (your-archive.zip).

Aby zweryfikować, wpisz następujące polecenie:

unzip -l your-archive.zip

To po prostu wyświetli zawartość   twój-archive.zip.

Jeśli nie czujesz się komfortowo z Terminalem, BetterZip ma możliwość zrobienia tego za ciebie, ale to 25 $.

Tetsujin
źródło
Chciałbym całkowicie wyłączyć tę opcję.
Roei Hazout
1
Wątpię, że to możliwe. Dane są dostępne dla systemu operacyjnego, aby móc poprawnie ponownie łączyć metadane, które nie mogą być przenoszone w plikach w inny sposób.
Tetsujin