Jak wykluczyć pliki z archiwum ZIP
Spisu treści:
Najprostszym sposobem wykluczenia wielu określonych plików lub grupy dopasowanych plików z archiwum zip jest pominięcie narzędzia łatwego kompresowania wbudowanego w przyjazny interfejs użytkownika systemu Mac OS X i przejście do wiersza poleceń, gdzie rezyduje potężna komenda zip. Jest to przydatne z miliona i jednego powodu, ale główna motywacja tego postu dotyczy plików .DS_Store, które są dołączane do archiwów zip tworzonych na komputerze Mac, tylko po to, by zaśmiecać inną maszynę, która rozpakowuje plik, niezależnie od tego, czy jest na innym Mac, Windows PC lub Linux.Dzieje się tak zarówno w przypadku przyjaznego narzędzia zip, jak i narzędzia zip wiersza poleceń, a to dlatego, że domyślnym zachowaniem narzędzi do kompresowania jest włączanie ukrytych plików, niezależnie od tego, czy są one pokazane, czy nie. Niekoniecznie jest to coś złego iw wielu przypadkach byłoby to uważane za przydatne, ale jeśli nie chcesz, aby one lub jakikolwiek inny plik pojawiały się w twoich archiwach, czytaj dalej.
Jak wykluczyć pliki z archiwum ZIP
Podstawy wykluczania plików podczas tworzenia archiwum zip koncentrują się wokół flagi -x, która służy do wykluczania z archiwum plików pasujących do określonej nazwy lub wzorca. Najprościej wygląda to tak:
"zip archiwum.zip pliki -x Wyklucz mnie"
To znaczy, że możesz wykluczyć pojedynczy plik, na przykład o nazwie „Notanks.jpg”
"zip archive.zip images/ -x Notthanks.jpg"
Omówmy kilka konkretnych przykładów, w których jest to przydatne.
Wyklucz pliki .DS_Store z archiwów ZIP
Zapobiegnie to dołączaniu zwykle niewidocznych plików .DS_Store metadanych Maca do archiwum ZIP, które jest domyślnie dołączane w pakiecie:
"zip -r nazwa_archiwum.zip katalog_archiwum -x .DS_Store"
Jeśli jednak katalog zawiera podkatalogi, będziesz chciał użyć innej odmiany tego polecenia, aby wykluczyć również pliki ds_store z podkatalogów:
"zip -r archiwum.zip katalog -x /\.DS_Store"
Uwaga: nie wszystkie powłoki wymagają cudzysłowów, aby to polecenie działało poprawnie, ale w powłoce bash (domyślna dla Mac OS X) będziesz musiał używać cudzysłowów do wykluczania z symbolami wieloznacznymi i wzorami.
Wyklucz określone typy plików z archiwum ZIP
Dzięki symbolom wieloznacznym możesz również wykluczyć wszystkie pliki określonego typu, koncentrując się na rozszerzeniu. Na przykład to polecenie skompresuje cały katalog bez plików .jpg:
"zip -r archiwum.zip katalog -x .jpg"
To można zmodyfikować dla dowolnego określonego rozszerzenia pliku lub wzorca dopasowanego do nazwy pliku.
Wyklucz katalog .git lub .svn z archiwum ZIP
"Spakuj katalog, minus .git i jego zawartość: zip -r zipdir.zip directorytozip -x .git "
Spakuj folder, bez dołączania katalogu .svn: zip -r katalog zip.zip -x .svn "
Wyklucz wszystkie ukryte pliki z archiwum ZIP
Ponieważ można używać wzorców i symboli wieloznacznych, można również wykluczyć dowolne lub wszystkie niewidoczne pliki i foldery, które zostały utworzone w taki sposób, poprzedzone kropką, niezależnie od tego, czy jest to katalog, taki jak .svn, czy pojedynczy plik, taki jak .bash_profile lub .htaccess.
zip -r nazwa_archiwum.zip katalogtozip -x ."
Lub aby wykluczyć wszystkie niewidoczne pliki ze wszystkich podkatalogów:
"zip -r archiwum.zip katalog -x /\."
Pozdrawiam komentującego na forach Macworld za dokładną składnię wykluczania tych plików również z podkatalogów.
Ostatecznie jest to kolejny powód, dla którego zaawansowani użytkownicy przeskakują do terminala w celu tworzenia archiwów. Dzięki zaawansowanym funkcjom, takim jak obsługa symboli wieloznacznych, wykluczanie i opcjonalna ochrona plików zip hasłem, jest po prostu bardziej w pełni funkcjonalna, a ponieważ wszystko to jest zawarte w komputerze Mac, nie musisz pobierać innej aplikacji, aby obsługiwać zaawansowane funkcje.
Tak, technicznie rzecz biorąc, jeśli chcesz pozostać w interfejsie użytkownika, możesz użyć operatorów wyszukiwania Finder i Spotlight, aby zawęzić zawartość folderów w systemie Mac OS X przed utworzeniem archiwum, lub po prostu wybierz wszystko i ręcznie Command+Kliknij każdy plik, którego chcesz pominąć, ale to naprawdę nie jest wydajne w przypadku dużych operacji archiwizacji.W ten sposób terminal wygrywa z łatwością i pomimo tego, że koncentruje się wokół wiersza poleceń, naprawdę nie jest skomplikowany, gdy nauczysz się podstaw.