Порой возникают задачи по массовой перепаковке архивов из одного формата в другой. Например, “утрамбовка” целой директории из zip в 7z.
Вот тру-опен-сорс-скрипт repackdir.sh, который сделает все сам – достаточно вызвать его “стоя” в директории с зипами.
Развесистые субдиректории поддерживаются. Злоупотреблять с ущербными именами файлов не стоит, хотя вроде все должно работать.
#!/bin/sh
for file in *.zip
do
file_basename=`basename "$file" .zip`
echo $file_basename
mkdir "$file.unp"
unzip "$file" -d "$file.unp"
cd "$file.unp"
7zr a -t7z -mx9 "../$file_basename.7z" -r
cd ..
rm -rf "$file.unp"
done
Мда… помнится конвертер zip->rar для Windows Scripting Host занимал как-то побольше.
Ахтунги:
- Пакует с мегасжатием, поэтому процесс ресурсоемкий.
- Для работы надо, чтобы в системе были установлены пакеты zip (unzip) и p7zip.