У меня есть несколько zip-файлов в главном каталоге, которые нужно рекурсивно перепаковать. Эти файлы содержат пробелы, апострофы, подчеркивания и т. д.
advzip
не работает, так как жалуется на неподдерживаемый метод сжатия (причина, по которой их нужно перепаковать). Все эти файлы распаковываются, их просто нужно перепаковать/упаковать с некоторой автоматизацией, так как их тысячи.
Первоначально файлы были созданы в Windows с использованием MP3+G Toolz для караоке-библиотеки.
ОС: Linux Mint 18
Написание скриптов: Новичок
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
Выше то, что я ищу, в основном. Но поскольку я не силен в скриптах, я не уверен, как сделать это для всех zip-файлов в подкаталогах. Пример имени файла:
SC0000-01 - Someone - Something.zip
Файлы в zip-архиве:
SC0000-01 - Someone - Something.cdg
SC0000-01 - Someone - Something.mp3
решение1
когда упоминаешь advzip, я предполагаю, что ты используешь Linux. Здесь ты можешь написать простой скрипт, который будет циклить каждый файл
for f in *;
do;
unzip $f;
done
надеюсь, это поможет, в противном случае было бы целесообразно предоставить более подробную информацию.
решение2
Если только я не усложнил ситуацию больше, чем нужно:
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