openSUSEa suomeksi
openSUSE => Asennus ja käyttö => Aiheen aloitti: juge - 20.02.2009 - klo:14:06
-
�
ongelma on windows aikana tallennetut tiedostot joiden nimissä on ääkkösiä. niiden paikalla on siis nyt susella (11.0) salmiakkikuvion (diamond) sisään laitettu kysymysmerkki (?). tiedostotyypistä riippumatta niitä ei saa auki millään ohjelmalla eikä niitä pysty edes poistamaan. Nyt (siis susella) tallennetun tekstitiedoston nimessä kyllä voi olla mitä tahansa üükkösiä ja ååkkôŝìá ja hyvin toimii.
osaisiko joku fiksumpi neuvoa missä on vika (paitsi wintoosassa:)ja mitä pitäisi tehdä?
-
Salmiakkikysymysmerkit kertovat, että nimi on koodattu Windows-1252:lla (~ Latin-1:llä), joka on 8-bittinen järjestelmä. SUSE kuten Linuxit nykyään yleisemminkin käyttää UTF-8:a, joka on vaihtelevasti 7–16-bittinen (7 bittiä riittää perinteiseen ASCIIhin eli merkkeihin A...Z, kahta tavua eli 16 bittiä käytetään muihin).
Ainakin recode-niminen ohjelma osaa muuttaa tiedostojen sisällön merkistökoodausten välillä. Tiedostonimien muunnoksessa täytynee soveltaa jotain skriptirimpsua tms.
Mutta varaudu nyt siihen, että guru poikineen tulee haukkumaan sinut ääkkösten käyttämisestä tiedostonimissä. Nämä gurut toivovat maailman jääneen pysyvästi 60-luvulle ;D
-
en ole guru, joten en moiti, mutt noin siinä käy, kun ei (iki)-vanhoja perussääntöjä noudateta halusta tai muusta syystä.
Osa ongelmiin on tietty MS:n 'ennenaikainen' epästandardi tapa.
Toinen saman aikakauden edelleen vaikuttava juttu on muuten, että nimet (ehkä) kantsii kirjoittaa yksisanaisiksi vaikka väliviivojen avulla.
Ai miksikö? ...vois tuo SuperOskari kysyä, vaikka käsittääkseni vanha konkari lieneekin.
No siksi, ett saa ne nimet tarvittaessa näkyviin myös komentoriviä käytettäessä...
se kun joskus voi helpottaa elämää. ...vaikka GUI:n hajotessa tai kieltäytyessä käynnistymään vaikkas vika ajurin tai reson takia.
Et se siitä vanhanaikaisesta pysähtyneisyydestä jollekin vuosikymmenelle mister (?) SuperOskar...
-
Toinen saman aikakauden edelleen vaikuttava juttu on muuten, että nimet (ehkä) kantsii kirjoittaa yksisanaisiksi vaikka väliviivojen avulla.
Ai miksikö? ...vois tuo SuperOskari kysyä, vaikka käsittääkseni vanha konkari lieneekin.
No siksi, ett saa ne nimet tarvittaessa näkyviin myös komentoriviä käytettäessä...
Wanhojen sääntöjen noudattaminen helpottaa ehkä elämää komentorivillä, mutta totta puhuen aika vähän. Tiedostonimen välilyönti ei ole ongelma sarkaintäydentimelle, eikä se käsin nimeä kirjoittaessakaan edellytä kuin yhtä ylimääräistä takakenoa.
Mutta asiaan: guuglaamalla löytyi tieto ohjelmasta nimeltä convmv, joka lupaa nimenomaan muuntaa tiedostonimien merkkikoodausta. Katsopa, löytyykö sitä valmiina SUSEn pakettivarastoista (omalla koneellani on Kubuntu, joten en pääse tarkistamaan tähän hätään).
-
Mutta asiaan: guuglaamalla löytyi tieto ohjelmasta nimeltä convmv, joka lupaa nimenomaan muuntaa tiedostonimien merkkikoodausta. Katsopa, löytyykö sitä valmiina SUSEn pakettivarastoista (omalla koneellani on Kubuntu, joten en pääse tarkistamaan tähän hätään).
Tuo convmv löytyy ihan perusasennuslähteestä. Vanha SUSE Linux 9.1 aikainen ohje asiasta löytyy täältä (http://en.opensuse.org/SDB:Converting_Files_or_File_Names_to_UTF-8_Encoding).
Taas muistin virkistämiseksi:
Pakettien etsintään ei tarvitse googlea käyttää, jos käytössä openSUSE 11.1 niin komento
/sbin/yast2 webpin_package_search
avaa pakettien etsintä-moduulin, jos taas ei openSUSEa käytössä niin sitten vaikka täältä (http://opensuse.fi/Hae_ohjelmia.php)
-
Laajempi siirtyminen latin-1 (ISO-8859-1) merkistöstä UTF-8 merkistöön tapahtui Windows ja Linux puolella samoihin aikoihin. Itse törmäsin tähän muutokseen kun päivitin Suse 8.0:n Suse 9.2:een. Oletusmerkkikanta oli iloisesti vaihtunut toiseksi locale:n muuttuessa. Ennen tiedostonimien muutosta kannattaa tehdä varmuuskopio siinä järjestelmässä (esim Windows), joka ymmärtää alkuperäiset nimet tai ottaa levykuva (Clonezilla tms). "recode" komennon käyttö on yksinkertaista ja tehokasta, mutta pitää olla varma siitä mitä tekee. Alla yksinkertaistettu esimerkki tiedostonimien muutoksesta yhdessä hakemistossa (don't do this at production system - you have been warned)
~/test> cat rename.sh
#!/bin/bash
# hro, 2008-05-13, 2009-02-21
for fin in *.*
do (
fout=$(echo $fin | recode ISO-8859-1..)
if [ "$fout" == "$fin" ]
then
continue;
fi
mv "$fin" "$fout"
) done
# end of script
~/test> ls *.txt
12 4.txt aaa.txt ???.txt ???.txt
~/test> rename.sh
~/test> ls *.txt
12 4.txt aaa.txt ÄÖÜ.txt öäå.txt
~/test>
Välilyöntejä sisältävien tiedosto/polkunimien käsittelyyn voi käyttää lainausmerkkejä (ihan kuin Windows puolella). Komentotulkin ohjelmissa lainausmerkkien käyttö muuttujien ympärillä voi aluksi tuntua oudolta, mutta kaikkeen tottuu.
Pitänee itse tutustua convmv komentoon.
-
Laajempi siirtyminen latin-1 (ISO-8859-1) merkistöstä UTF-8 merkistöön tapahtui Windows ja Linux puolella samoihin aikoihin.
Tarkalleen ottaen Windowsissa ei käytetä UTF-8:a vaan UTF-16:ta. ”Samoihin aikoihin” taas on suhteellisen joustava käsite, minkä huomaa siitä, että vieläkin näitä vaikeuksia vain on :)
-
no niin. loistavaa. tosiaan tolla convmv:lla (joka tosiaan löyty suoraan sieltä varastosta) käänsin koko kovalevyn kopipastella http://linux.fi/wiki/Convmv ohjeiden mukaan ja hyvin pelittää.
kiitos paljon avusta.
-
Mites salmiakit poistetaan html koodista ja php scriptistä. Ne ei oo nimissä vaan ite tekstissä ja aiheuttavat ääkkösten kanssa valmiissa sivussa hillittömästi ylimääräsiä merkkejä.
Kate on käytössä noitten koodien käsittelyssä.
-
Mites salmiakit poistetaan html koodista ja php scriptistä. Ne ei oo nimissä vaan ite tekstissä ja aiheuttavat ääkkösten kanssa valmiissa sivussa hillittömästi ylimääräsiä merkkejä.
Siihen käytetään ohjelmaa nimeltä recode (jota itse asiassa hro:n skripti tuolla yläpuolellakin käytti).
Muista kuitenkin konffata sitten WWW-serveri lähettämään oikeat merkistökoodaukset, tai kirjoita ainakin oikeanlaiset meta-attribuutit HTML-tiedostoihin.
-
Tää ei nyt oikeen avaudu miulle. Eli jos miulla on omassa kotikansiossa tiedosto.
merkitpersiillaan.html
lomakekasittely.php
niin miten mie ne käyn läpi. Tänään(kin) on pääkopan jumetuspäivä, joten semmonen rautalanka ohje ois tarpeeseen :P
-
Eli jos miulla on omassa kotikansiossa tiedosto.
merkitpersiillaan.html
lomakekasittely.php
niin miten mie ne käyn läpi.
Ensin sinun on asennettava recode, jollei sitä ole jo asennettu. Tähän en anna tarkempaa ohjetta, koska en pääse juuri nyt SUSE-koneelle sitä testaamaan.
Kun ohjelma on käytösssäsi: Avaa pääte, siirry hakemistoon, jossa nuo tiedostot ovat, ja anna komento:
recode CP1252..UTF-8 *
-
Juu, on recode asennettuna ja tein edellä olevan ohjeen mukaan. Alla lopputulos. Tosta suluissa olevasta (kuvat) jutusta en kyllä jummarra mitään, koska ei se sijainti oo kuvien kanssa missään tekemisissä. Mitä lie tarkottaa.
Kyseinen kommentti on ruudulla jo melkein ennen ko entteriä kerkee painaa. Eli ei ainakaan mietiskele lopputulosta.
recode: fopen (kuvat): On hakemisto
-
Sitähän tuo vain tarkoittaa, että kun ”*” lavennetaan kaikiksi tiedostoiksi, joukossa on hakemistojakin. Ilmeisesti recode ei sitten ohita niitä vaan rupeaa nutisemaan.
Tarvitaan mutkikkaampi loitsu (tai täsmällisempi jokeri, mutta kun en tiedä tiedostojesi nimiä, mennään tällä):
find . -type f -print0 | xargs -0 recode CP1252..UTF-8
Tuollaisena tuo käsittelee paitsi nykyisen hakemiston myös kaikki alihakemistot. Jos haluat käsitellä vain nykyisen hakemiston, lisää -maxdepth-valitsin:
find . -maxdepth 1 -type f -print0 | xargs -0 recode CP1252..UTF-8