Tengo varios archivos zip en un directorio principal que deben volver a empaquetarse de forma recursiva. Estos archivos tienen espacios, apóstrofes, guiones bajos, etc.
advzip
no funciona porque se queja de un método de compresión no compatible (una razón por la que es necesario volver a empaquetarlos). Todos estos archivos se descomprimen, solo es necesario volver a comprimirlos/comprimirlos con cierta automatización, ya que hay miles.
Los archivos se crearon originalmente en Windows usando MP3+G Toolz para una biblioteca de karaoke.
SO: Linux Mint 18
Escritura de guiones: principiante
for file in *.zip
do
unzip -j "$file"
rm -f "$file"
zip -mq "$file" *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
rm -f *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
done
Arriba está lo que estoy buscando, en su mayor parte. Pero como no soy bueno con los scripts, tampoco estoy seguro de cómo hacerlo para todos los zip en los subdirectorios. Ejemplo de un nombre de archivo:
SC0000-01 - Someone - Something.zip
Los archivos en el zip son
SC0000-01 - Someone - Something.cdg
SC0000-01 - Someone - Something.mp3
Respuesta1
Cuando menciono advzip, asumo que usas Linux. Aquí puedes escribir un script simple que recorra cada archivo.
for f in *;
do;
unzip $f;
done
Espero que esto ayude; de lo contrario, se recomendaría proporcionar más detalles.
Respuesta2
A menos que haya hecho esto más complicado de lo necesario:
find . -name "*.zip" -print0 | while read -d $'\0' file
do
unzip -j "$file"
rm -f "$file"
zip -mq "$file" *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
rm -f *.mp3 *.cdg *.MP3 *.CDG *.Mp3 *.Cdg
done