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 unzip
todos 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 rm
ou zip
docs.
Estou usando o terminal em um Mac (Yosemite).
unzip
aplica 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`)
unzip
aceitar 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. tar
não possui nenhum modo de operação como esse.
unzip
poderia fazer isso sem ofor f in *.zip;do...done
loop de shell normal . Uma interface de usuário de linha de comando estranha e não unix.