Arme un script para hacer algunas operaciones de archivo por mí. Estoy usando el operador comodín *para aplicar funciones a todos los archivos de un tipo, pero hay una cosa que no entiendo. Puedo unziptodos los archivos en una carpeta como esta
unzip "*".zip
Sin embargo, para eliminar todos los archivos zip después, necesito hacer
rm *.zip
Es decir, no quiere las comillas. El descomprimir, por otro lado, no funciona si solo le doy el * (me da una advertencia de que "los archivos no coinciden").
¿Por qué es esto diferente? Para mí, esto parece exactamente la misma operación. ¿O estoy usando el comodín incorrectamente?
Las introducciones al comodín en Unix realmente no entran en esto, y no pude encontrar nada en los documentos rmo zip.
Estoy usando la terminal en una Mac (Yosemite).
unzipaplica el glob al contenido de un archivo; no puedes obtenerlos de bash con un comodín. (Necesitarías `` para f in unzip -l archive.zip; do ... done`)
unzipaceptar globos para que coincidan dentro de un único archivo zip. Pero esto es diferente; Realmente intenté unzip '*.zip'en un directorio con múltiples archivos zip, y extrae todos los archivos de todos los zip. Como dije, súper raro. tarno tiene ningún modo de operación como ese.
unzippodría hacer esto sin elfor f in *.zip;do...donebucle de shell normal . Una interfaz de usuario de línea de comandos no similar a Unix tan extraña.