Eu montei um script para fazer algumas operações de arquivo para mim. Estou usando o operador curinga *para aplicar funções a todos os arquivos de um tipo, mas há uma coisa que não entendo. Eu posso unziptodos os arquivos em uma pasta como esta
unzip "*".zip
No entanto, para remover todos os arquivos zip depois, preciso fazer
rm *.zip
Ou seja, ele não deseja aspas. O descompactação, por outro lado, não funciona se eu apenas der o * (me avisa que "os arquivos não foram correspondidos").
Por que isso é diferente? Para mim, isso parece exatamente a mesma operação. Ou estou usando o curinga incorretamente?
Introduções para o wild card em Unix realmente não ir para este, e eu não conseguia localizar qualquer coisa no rmou zipdocs.
Estou usando o terminal em um Mac (Yosemite).
unzipaplica a glob ao conteúdo de um arquivo; você não pode obtê-los do bash com um curinga. (Você precisa de `` `for f in unzip -l archive.zip; fazer ... done`)
unzipaceitar globs para combinar dentro de um único arquivo zip. Mas isso é diferente; Na verdade, eu tentei unzip '*.zip'em um diretório com vários arquivos zip e extrai todos os arquivos de todos os zips. Como eu disse, super estranho. tarnão possui nenhum modo de operação como esse.
unzippoderia fazer isso sem ofor f in *.zip;do...doneloop de shell normal . Uma interface de usuário de linha de comando estranha e não unix.