Złożyłem skrypt, aby wykonać dla mnie pewne operacje na plikach. Korzystam z operatora wieloznacznej karty, *aby zastosować funkcje do wszystkich plików danego typu, ale jest jedna rzecz, której nie rozumiem. Mogę unzipwszystkie pliki w takim folderze
unzip "*".zip
Jednak, aby później usunąć wszystkie pliki zip, muszę to zrobić
rm *.zip
Oznacza to, że nie chce znaków cudzysłowu. Z drugiej strony rozpakowanie nie działa, jeśli po prostu dam mu * (ostrzega mnie, że „pliki nie zostały dopasowane”).
Dlaczego to jest inne? Wydaje mi się, że to dokładnie ta sama operacja. A może źle używam dzikiej karty?
Przedstawienia dzikiej karty w Uniksie tak naprawdę nie wchodzą w to, i nie mogłem znaleźć niczego w dokumentach rmani zip.
Korzystam z terminala na komputerze Mac (Yosemite).
unzipstosuje glob do zawartości archiwum; nie można ich zdobyć z paczki za pomocą symbolu wieloznacznego. (Będziesz potrzebować `` dla f in unzip -l archive.zip; do ... gotowe ')
unzipakceptowaniu globów w jednym pliku zip. Ale to jest inne; W rzeczywistości próbowałem unzip '*.zip'w katalogu z wieloma plikami zip i wyodrębnia wszystkie pliki ze wszystkich zamków błyskawicznych. Tak jak powiedziałem, super dziwne. tarnie ma takiego trybu działania.
unzipto zrobić bez normalnejfor f in *.zip;do...donepętli powłoki. Taki dziwny interfejs użytkownika, który nie przypomina unixa.