Portál AbcLinuxu, 5. května 2025 23:21
# dpkg-reconfigure locales ... [*] cs_CZ.UTF-8 UTF-8Dale v terminalu nastavit:
$ export LANG=cs_CZ.UTF-8A nakonec ZIP rozbalit windowsovym 7zipem spustenym pres wine:
$ wine 7za.exe e -scsUTF-8 soubor.zipResil jste to prosim nekdo? Mate na to jednodussi postup? Treba nejakym jinym nastrojem Diky
Řešení dotazu:
Pozri sa na príspevok. Podľa neho som si vytvoril script:
#!/usr/bin/env bash # # Script rozbali .zip subor, skovertuje cs/sk znaky a zbali ho do .7z # alebo s prepinacom x rozbali .zip do aktualneho adresara # potrebuje p7zip a convmv # # Su nainstalovane potrebne programy? command -v 7z >/dev/null 2>&1 || { echo "Chyba program 7z (balik p7zip-full alebo p7zip)"; exit 1; } command -v convmv >/dev/null 2>&1 || { echo "Chyba program convmv (balik convmv)"; exit 1; } # spracovanie vstupnych parametrov copy=false if test $# -eq 0 -o $# -ge 2; then if test "$1" = x -a $# -le 2; then copy=true shift else echo -e "Pouzitie:" echo -e "zip27z subor.zip - zip sa skonvertuje do .7z" echo -e "zip27z x subor.zip - zip sa robali do aktualneho adresara" exit 1 fi fi # existuje subor? zipfile="$1" name=${zipfile%.*} if test ! -f "$zipfile"; then echo "Subor $zipfile neexistuje" exit 1 fi # rozbal zip, koverzia znakov tmpdir=$(mktemp -d) LANG=C 7z x -bso0 -bsp0 "$zipfile" -o"$tmpdir" if test $? -ne 0 ;then exit 1 fi convmv -f CP852 -t UTF-8 -r --nfc --replace --notest "$tmpdir" \ 2>&1 >/dev/null | grep -v "Ready!" # kopirovat alebo zbalit do .7z if test $copy = true; then cp -r -i --preserve=timestamps "$tmpdir"/* . else 7z a -bso0 "$name".7z "$tmpdir"/* fi # mazanie rm -r $tmpdir exit 0zip27z skovertuje .zip do .7z
#!/usr/bin/python
import zipfile
import sys
zipfile.ZipFile(sys.argv[1], 'r').extractall(sys.argv[2] if len(sys.argv) > 2 else '.')
A pak to pomocí convmv překóduju na co chci já:
python unzip.py archiv.zip
convmv -r -f cp852 -t utf8 rozzipovaný_adresář
unar -e CP852 soubor.zip
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.