Masz zamianę argumentów. Spróbuj tego:
-d
--delete
Usuń (usuń) wpisy z archiwum zip. Na przykład:
zip -d foo foo/tom/junk foo/harry/\* \*.o
usunie wpis foo/tom/junk
, wszystkie pliki zaczynające się od
foo/harry/
i wszystkie pliki, które kończą się .o
(w dowolnej ścieżce). Zauważ, że rozszerzanie nazw ścieżek powłoki zostało wstrzymane za pomocą ukośników odwrotnych, dzięki czemu zip widzi gwiazdki, umożliwiając dopasowanie zip do zawartości archiwum zip zamiast zawartości bieżącego katalogu. (Ukośniki odwrotne nie są używane na platformach opartych na MSDOS.) Można również użyć cudzysłowów, aby uciec od gwiazdek, jak w
zip -d foo foo/tom/junk "foo/harry/*" "*.o"
Brak znaków gwiazdki w systemie, w którym powłoka rozwija symbole wieloznaczne, może spowodować, że gwiazdki zostaną przekonwertowane na listę plików w bieżącym katalogu i ta lista zostanie użyta do usunięcia wpisów z archiwum.
W MSDOS -d rozróżnia małe i wielkie litery, gdy pasuje do nazw w archiwum zip . Wymaga to, aby nazwy plików były pisane wielkimi literami, jeśli zostały skompresowane przez PKZIP w systemie MSDOS. (Zastanawialiśmy się nad tym, aby wielkość liter nie była rozróżniana w systemach, w których ścieżki nie rozróżniają wielkości liter, ale możliwe jest, że archiwum pochodzi z systemu, w którym wielkość liter ma znaczenie, a archiwum może zawierać zarówno Bar
i bar
jako osobne pliki w archiwum.) Ale zobacz nową opcję - ic, aby zignorować wielkość liter w archiwum.
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
zip
, jak podano na cytowanej stronie podręcznika. Na przykład, jeśli znajdujesz się w katalogu zawierającymfile1.txt
,file2.txt
ifile3.txt
, możesz wykonaćls -1 | zip -q 'files.zip' -@
, co spowoduje utworzenie archiwumfiles.zip
zawierającego 3 pliki, do których przesyłałeś potokizip
z nienaruszonymi nazwami plików.