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ę unzip
wszystkie 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 rm
ani zip
.
Korzystam z terminala na komputerze Mac (Yosemite).
unzip
stosuje 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 ')
unzip
akceptowaniu 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. tar
nie ma takiego trybu działania.
unzip
to zrobić bez normalnejfor f in *.zip;do...done
pętli powłoki. Taki dziwny interfejs użytkownika, który nie przypomina unixa.