Po rozbalení archívu zip súbory, ktoré majú v názve diakritiku majú zlé názvy.
Vytvoril som script ktorý prevedie zip archív na 7-zip. S tým sa dá pracovať v Linuxe bez problémov.
1)
Treba nainštalovať 7zip
sudo apt-get install p7zip-full
2)
Nahrať z edisk 32bit/64bit unzip 5.52 + script
http://www.edisk.sk/stahni/29547/zip27z_32.7z_45.93KB.htmlhttp://www.edisk.sk/stahni/05549/zip27z_64.7z_52.97KB.html3)
Rozbaliť archív, potom
mv unzip ~/bin/unzip
mv zip27z ~/.gnome2/nautilus-scripts/Konverzia\ zip\ na\ 7z
odhlásiť/prihlásiť sa (alebo reštart)
4)
Uznačiť .zip archívy v nautilus, pravé tlačítko myši, skripty, Konverzia zip na 7z
Zip archívy sa presunú do koša.
Na edisk balíky vydržia mesiac, potom treba
Script zip27z vytvoriť
#! /bin/bash
#
# Script rozbali subor .zip, zbali subory do .7z
# Subor .zip sa presunie do kosa (pokial je povoleny kos)
# Potrebuje baliky: unzip 5.52 z ubuntu 9.10, zenity, 7zip
#
# Limity:
# - spracuje archivy .zip zadané v príkazovom riadku (nepozna *)
# - iba znaky z CP1250/Latin2 ruske, cinske... nedokaze
#
# prikaz:
# for i in *.zip; do zip27z "$i"; done
# prevod vsetkych .zip v adresari.
#
# prikaz:
# bash -c 'shopt -s nocaseglob; for i in *.zip; do zip27z "$i"; done'
# prevod vsetkych .zip .ZIP .Zip ... v adresari.
#
CWD=`pwd`
## Funkcia prebal :)
##
prebal ()
{
TMPDIR=`mktemp -d`
NAME=${1%.*}
FILE7z=$NAME.7z
cd $TMPDIR
## Existuje subor?
if [ ! -f "$CWD/$1" ] ;then
zenity --error --text="Subor neexistuje\nSubor: $1"
rm -rf $TMPDIR
return 1
fi
## Je to zip?
QWE=`file -b --mime-type "$CWD/$1" | grep application/zip`
if [ $? -ne 0 ] ;then
zenity --error --text="Subor nie je zip archiv\nSubor: $1"
rm -rf $TMPDIR
return 1
fi
## Treba heslo?
QWE=`unzip -Z -s "$CWD/$1" | grep \\\-r | cut -b 30-32 | grep -E 'T|B' | wc -l`
if [ $QWE -ne 0 ] ;then
PASSWORD=`zenity --entry --title="$1" --text="Zadaj heslo pre archív $1" --hide-text`
if [ $? -ne 0 ] ;then
rm -rf $TMPDIR
return 1
fi
else
PASSWORD="a"
fi
## Rozbalenie zip archivu
unzip -O CP852 -P $PASSWORD "$CWD/$1"
if [ $? -ne 0 ] ;then
zenity --error --text="Chyba pri rozbalovani (zle heslo?)\nSubor: $1"
rm -rf $TMPDIR
return 1
fi
## Zbalenie do 7z archivu
7z a "$FILE7z" *
if [ $? -ne 0 ] ;then
zenity --error --text="Chyba pri kompresii\nSubor: $FILE7z"
return 1
fi
## Vymena zip a 7z
mv "$FILE7z" "$CWD"
cd "$CWD"
rm -rf $TMPDIR
gvfs-trash "$CWD/$1"
}
## Program - zaciatok
##
if [ "$1" = "" ]; then
echo "Pouzitie: zip27z subor.zip [subor1.zip]..."
exit 1
fi
## Spravny unzip?
QWE=`unzip -h | grep \\\-O`
if [ $? -ne 0 ] ;then
zenity --error --text="Nespravny unzip\nTreba unzip 5.52 z KK"
rm -rf $TMPDIR
exit 1
fi
## Vsetky subory
while [ "$1" ]; do
prebal "$1"
shift
done
exit 0
Vytiahnuť unzip z balíku unzip_5.52-12ubuntu1_amd64.deb (alebo unzip_5.52-12ubuntu1_i386.deb)
V termináli sa dá rozbaliť zip
unzip -O CP852 balík.zip