Fórum Ubuntu CZ/SK
Ostatní => Tipy a triky pro Linux => Téma založeno: fish 16 Června 2010, 12:20:08
-
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.html
http://www.edisk.sk/stahni/05549/zip27z_64.7z_52.97KB.html
3)
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
-
Jelikož vůbec nemám ponětí o tom, k čemu jsou skripty a jak fungují, nemám ani ponětí, jak se vůbec vytvářejí. Proto bych chtěl poprosit, zda by mi někdo nemohl ten skript nahrát na net už hotový tak, jak byl na tom edisku...
Díky moc
-
Napíš aký máš systém (32/64 bit), pridám script+unzip na edisk. Ak nevieš, daj sem výpis príkazu
uname -a
-
Linux jakub-ntb 2.6.32-31-generic #61-Ubuntu SMP Fri Apr 8 18:24:35 UTC 2011 i686 GNU/Linux