Παρασκευή 27 Ιανουαρίου 2017

Υπάρχουν φορές που τα αρχεία που έχουμε σε μία διανομή Linux και έχουν ελληνικό όνομα δεν απεικονίζονται σωστά στη λίστα αρχείων όπως φαίνεται στην παρακάτω εικόνα:

-rwxrwxr-x 1 mpd  audio  9877558 Aug  1  2013 ????? ?????????????- ???????? ????????- ?????? ?????????? - ?? ??????? ??? ????.mp3
-rwxrwxr-x 1 mpd  audio  3279931 Aug  1  2013 ?????_[???????? ???????].mp3
-rwxrwxr-x 1 mpd  audio  7285595 Aug  1  2013 ?????? - ???? ??? ??????? ???? ?????????.mp3
-rwxrwxr-x 1 mpd  audio  3897257 Aug  1  2013 ?????? - ??????_[?????????? ????????].mp3
-rwxrwxr-x 1 mpd  audio  4180368 Aug  1  2013 ?????? - ???????? .mp3
-rwxrwxr-x 1 mpd  audio  2905440 Aug  1  2013 ?????? ? ?????_[?????????? ?????????_???????? ?????].mp3
-rwxrwxr-x 1 mpd  audio  2856539 Aug  1  2013 ?????? ??? ???_[?????????? ?????????].mp3

-rwxrwxr-x 1 mpd  audio  2930517 Aug  1  2013 ?????? ???_[??????? ?.].mp3

Αυτό ωφείλεται στο ότι η κωδικοποίηση των ονομάτων των αρχείων είναι διαφορετική από αυτή που υποστηρίζει το σύστημα μια και οι νεότερες διανομές Linux υποστηρίζουν εξ ορισμού κωδικοποίηση UTF-8 ενώ οι παλιότερες διανομές υποστήριζαν ISO (π.χ. ISO8859-7 για ελληνικά).

Ένας γρήγορος τρόπος για να μετατρέψουμε τα ονόματα των αρχείων ώστε να απεικονίζονται σωστά είναι με τη χρήση του προγράμματος convmv.

Για να μετατρέψουμε ένα αρχείο με το convmv του δίνουμε ώς παράμετρους την τρέχουσα κωδικοποίηση του αρχείου με το διακόπτη -f (π.χ. -f iso8859-7 για ελληνικά), την επιθυμητή κωδικοποίηση στην οποία θέλουμε να μετατρέψουμε το όνομα του αρχείου, το όνομα του αρχείου και το διακόπτη --notest για να εκτελεστεί κανονικά και να γίνει η αντικατάσταση.

Σε κάθε περίπτωση πρωτού κάνουμε μια μετατροπή είναι καλό να έχουμε εκτελέσει το convmv χωρίς τον διακόπτη --notest ώστε να ελέγξουμε εκ των προτέρων τη μετατροπή πρωτού αυτή εκτελεστεί ουσιαστικά και τροποποιήσει το αρχείο στο δίσκο μας.

Αν επιθυμούμε να μετατρέψουμε ένα σύνολο αρχείων τότε στη θέση του ονόματος αρχείου βάζουμε τον αστερίσκο (*) που δρα ως μπαλαντέρ στην επιλογή των αρχείων ενώ αν τα αρχεία αυτά βρίσκονται σε μια ιεραρχική δομή φακέλων και θέλουμε να μετατραπούν τόσο τα αρχεία που βρίσκονται στον αρχικό φάκελο όσο και τα αρχεία που βρίσκονται στους υποφακέλους χρησιμοποιούμε ως όνομα αρχείο τη σχετική ή απόλυτη διαδρομή του φακέλου και τον διακόπτη -r.

Στην περίπτωση αυτή η εντολή που θα εκτελέσουμε παίρνει την ακόλουθη μορφή:

convmv -f iso8859-7 -t utf8 -r /path/to/files/* --notest

Τέλος αν το convmv δεν υπάρχει ήδη στη διανομή σας θα πρέπει να το εγκαταστήσετε με τον ανάλογο package manager. Στην περίπτωση του Ubuntu από την κονσόλα εκτελέιτε

sudo apt-get install convmv




Δεν υπάρχουν σχόλια: