Próbuję utworzyć plik ZIP za pomocą zip
narzędzia wiersza polecenia dostarczonego z terminalem Mac OS X. Chcę rekurencyjnie kompresować zawartość bieżącego folderu, ale z wyłączeniem .DS_Store
plików. Próbuję z tym:
zip -r myarchive.zip . -x .DS_Store
W -x .DS_Store
Nie obejmuje .DS_Store
plików w bieżącym folderze, ale nie w rekursywnie dodanych podfolderów. Jak wykluczyć wszystkie .DS_Store
pliki ze WSZYSTKICH podfolderów?
*
rozszerza się do niczego lub dowolnej części ścieżki jako ZIP rekurencyjnie kompresuje pliki i ich katalogów. Tak więc./.DS_Store
wtedy./*/.DS_Store
i tak dalej są wykluczone z archiwum.Przez większość czasu chcę wykluczyć wszystkie ukryte pliki, takie jak
.DS_Store
lub.git
lub.gitignore
Za pomocą jednego prostego polecenia możesz zająć się tym wszystkim i rekurencyjnie kompresować wszystkie pliki i podfoldery
zip -r archive.zip folder -x "*/\.*"
Lub jeszcze lepiej, utwórz funkcję w Zsh, aby ułatwić życie
open ~/.zshrc
Dodaj następujący kod w sekcji aliasów
Załaduj ponownie konfigurację zsh
source ~/.zshrc
Użyj w ten sposób
zip-visible archive.zip folder
źródło