charset des noms de fichiers et copie

Le
Jean-Marc Bourguet
J'ai un système de fichiers où les noms des fichiers sont encodés en
latin1. J'ai un autre système de fichiers où les noms sont encodés en
utf8. J'aimerais pouvoir copier les fichiers d'un système à l'autre tout
en trancodant correctement les noms des fichiers. Est-ce que quelqu'un
connait un moyen simple?

Merci

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Marc Bourguet
Le #19591811
Jean-Marc Bourguet
J'ai un système de fichiers où les noms des fichiers sont encodés en
latin1. J'ai un autre système de fichiers où les noms sont encodés en
utf8. J'aimerais pouvoir copier les fichiers d'un système à l'autre tout
en trancodant correctement les noms des fichiers. Est-ce que quelqu'un
connait un moyen simple?



Oops, j'oublie de préciser qu'il y a une arborescence à copier (donc des
répertoires à créer aussi, sinon

for f in * ; do
cp "$f" "/media/disk/Musicontes/$(echo "$f" | recode l1..utf8)";
done

fait ce que je veux.

A+

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Jean-Marc Bourguet
Le #19592381
Olivier Miakinen
Le 18/06/2009 07:54, Jean-Marc Bourguet a écrit :
J'ai un système de fichiers où les noms des fichiers sont encodés en
latin1. J'ai un autre système de fichiers où les noms sont encodés en
utf8. J'aimerais pouvoir copier les fichiers d'un système à l'autre tout
en trancodant correctement les noms des fichiers. Est-ce que quelqu'un
connait un moyen simple?



Il n'y aurait pas une option au montage du système de fichiers, du style
de iocharset, pour dire dans quel charset tu travailles ?



Pas que je sache (je n'ai vu ce genre d'options que pour les fs fat, vfat,
ntfs et iso9660 alors que les fs qui m'intéressent sont en ext3 et nfs).

A+

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Olivier Miakinen
Le #19592071
Le 18/06/2009 07:54, Jean-Marc Bourguet a écrit :
J'ai un système de fichiers où les noms des fichiers sont encodés en
latin1. J'ai un autre système de fichiers où les noms sont encodés en
utf8. J'aimerais pouvoir copier les fichiers d'un système à l'autre tout
en trancodant correctement les noms des fichiers. Est-ce que quelqu'un
connait un moyen simple?



Il n'y aurait pas une option au montage du système de fichiers, du style
de iocharset, pour dire dans quel charset tu travailles ?

Cf. une réponse de Stéphane Chazelas :

~$ grep vfat /proc/mounts
/dev/loop0 /mnt vfat rw,fmask22,dmask22,codepage=cp437,iocharset=utf8 0 0

[...]

Le mieux est de monter ta clef usb avec un iocharset qui
correspond a celui que tu utilises pour communiquer avec tes
users.


</>
Olivier Miakinen
Le #19596131
Le 18/06/2009 10:14, Jean-Marc Bourguet a écrit :

[ iocharset ? ]



Pas que je sache (je n'ai vu ce genre d'options que pour les fs fat, vfat,
ntfs et iso9660 alors que les fs qui m'intéressent sont en ext3 et nfs).



Eh bien je n'ai pas d'autre idée. J'en profite néanmoins pour te
signaler que ton horloge est en retard de deux heures. Pour être plus
précis, ton heure locale est réglée sur la valeur de l'heure UTC :

<headers>
Date: Thu, 18 Jun 2009 10:14:59 +0200
NNTP-Posting-Date: 18 Jun 2009 12:14:40 MEST
</headers>

--
Olivier Miakinen
Jean-Marc Bourguet
Le #19597351
Olivier Miakinen
Le 18/06/2009 10:14, Jean-Marc Bourguet a écrit :

[ iocharset ? ]



Pas que je sache (je n'ai vu ce genre d'options que pour les fs fat, vfat,
ntfs et iso9660 alors que les fs qui m'intéressent sont en ext3 et nfs).



Eh bien je n'ai pas d'autre idée. J'en profite néanmoins pour te
signaler que ton horloge est en retard de deux heures. Pour être plus
précis, ton heure locale est réglée sur la valeur de l'heure UTC :

<headers>
Date: Thu, 18 Jun 2009 10:14:59 +0200
NNTP-Posting-Date: 18 Jun 2009 12:14:40 MEST
</headers>



Je sais. Il faudrait que je regarde une fois pourquoi de temps en temps je
perds deux heures. Je pense que quand les enfants bootent sur Windows pour
jouer, mais ce n'est pas systématique. Et j'aimerais aussi comprendre
pourquoi la synchro sur les serveurs de temps ne corrige pas le problème.

A+

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Olivier Miakinen
Le #19598861
Le 19/06/2009 09:13, Jean-Marc Bourguet a écrit :

Eh bien je n'ai pas d'autre idée. J'en profite néanmoins pour te
signaler que ton horloge est en retard de deux heures. Pour être plus
précis, ton heure locale est réglée sur la valeur de l'heure UTC :

<headers>
Date: Thu, 18 Jun 2009 10:14:59 +0200
NNTP-Posting-Date: 18 Jun 2009 12:14:40 MEST
</headers>



Je sais. Il faudrait que je regarde une fois pourquoi de temps en temps je
perds deux heures. Je pense que quand les enfants bootent sur Windows pour
jouer, mais ce n'est pas systématique.



Bingo !

5.7 Pourquoi y-a-t-il un écart entre mon heure sous
Ubuntu et sous Windows ?

En gros, Windows considère que l'heure du BIOS est l'heure locale tandis
que Linux considère que c'est l'heure UTC.

C'est dans le chapitre 5, paragraphe 5.7, à la page 101. Moi j'ai acheté
le livre sous forme papier, mais tu peux aussi bien le télécharger à
l'adresse ci-dessus. Il y a plusieurs solutions proposées.

Et j'aimerais aussi comprendre
pourquoi la synchro sur les serveurs de temps ne corrige pas le problème.



Peut-être parce qu'elle est configurée pour ne changer l'heure que
progressivement plutôt que d'un seul coup ?
Lucas Levrel
Le #19599421
Le 18 juin 2009, Jean-Marc Bourguet a écrit :
> J'ai un système de fichiers où les noms des fichiers sont encodés en
> latin1. J'ai un autre système de fichiers où les noms sont encodés en
> utf8. J'aimerais pouvoir copier les fichiers d'un système à l'autre tout
> en trancodant correctement les noms des fichiers. Est-ce que quelqu'un
> connait un moyen simple?

Oops, j'oublie de préciser qu'il y a une arborescence à copier (donc des
répertoires à créer aussi, sinon

for f in * ; do
cp "$f" "/media/disk/Musicontes/$(echo "$f" | recode l1..utf8)";
done



Bonjour,

Je ne connais pas la syntaxe, mais n'est-il pas possible de créer une
fonction traite_rep(rep) qui ferait

mkdir "/media...$(echo "$rep" | recode...)"
for f in $rep/*
do { ff=$(ls -dF "$f")
if [[ ${ff:(-1):1} == / ]]
then traite_rep("$f")
else cp "$f" ...
fi }
done

puis traite_rep(.)

Reste à voir :
- traiter les liens (coton !)
- traiter les .*, il faut exclure les $ff qui se finissent par /../ et /./

--
LL
Stephane CHAZELAS
Le #19624571
2009-06-18, 07:54(+02), Jean-Marc Bourguet:

J'ai un système de fichiers où les noms des fichiers sont encodés en
latin1. J'ai un autre système de fichiers où les noms sont encodés en
utf8. J'aimerais pouvoir copier les fichiers d'un système à l'autre tout
en trancodant correctement les noms des fichiers. Est-ce que quelqu'un
connait un moyen simple?


[...]

$ apt-cache show convmv
Package: convmv
Priority: optional
Section: utils
Installed-Size: 88
Maintainer: Raphael Zimmerer Architecture: all
Version: 1.12-2
Depends: perl
Filename: pool/main/c/convmv/convmv_1.12-2_all.deb
Size: 20118
MD5sum: c0c229c0de0193fd5619d8694e450bba
SHA1: 3b654220c5829c5ca86330e3804e9b69ec67ddc1
SHA256: 61a9cc131c87eca77d8c6c281fd02ce63ba672e70eb4066aac902eebda31a230
Description: filename encoding conversion tool
convmv can convert a single filename, a directory tree or all files
on a filesystem to a different encoding. It only converts the
encoding of filenames, not files contents. A special feature of
convmv is that it also takes care of symlinks: the encoding of the
symlink's target will be converted if the symlink itself is being
converted.
.
It is also possible to convert directories to UTF-8 which are already
partially UTF-8 encoded.
.
Keywords: rename, move
Tag: devel::i18n, implemented-in::perl, interface::commandline, role::program, scope::utility, works-with::file

--
Stéphane
Jean-Marc Bourguet
Le #19625161
Stephane CHAZELAS
2009-06-18, 07:54(+02), Jean-Marc Bourguet:

J'ai un système de fichiers où les noms des fichiers sont encodés en
latin1. J'ai un autre système de fichiers où les noms sont encodés en
utf8. J'aimerais pouvoir copier les fichiers d'un système à l'autre tout
en trancodant correctement les noms des fichiers. Est-ce que quelqu'un
connait un moyen simple?


[...]

$ apt-cache show convmv



Parfait, merci.

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Publicité
Poster une réponse
Anonyme