IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Effacement de fichiers après transfert - problème caractères - Comment résoudre ?


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2022
    Messages : 15
    Par défaut Effacement de fichiers après transfert - problème caractères - Comment résoudre ?
    Bonjour à tous et à toutes.
    Je suis relativement novice en ligne de commande, je bricole quoi...
    J'utilise beaucoup ce qui est expliqué sur internet, ça m'aide beaucoup. Donc bravo à ceux qui font avancer la machine !

    Depuis une machine Linux, je copie des données via NFS. La machine auquel je prends les données est donc monté en NFS. C'est une machine sous Mac OSX.
    Après avoir copié les données avec la commande ci dessous depuis linux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # rsync -avX --delete-before --progress /mnt/remotes/Donnees_MAC/ /mnt/user/Echange/Donnees_MAC/
    je me retrouve avec des fichiers accentués, les mêmes que sur Mac mais il me deviens impossible de les effacer.
    Dans le dossier Linux je me suis rendu compte d'une chose en listant comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # ls -b
    Magic Radio - Années 80.m3u
     
    # LC_ALL=C ls -b
    Magic Radio - Anne314201es 80.m3u
    Il y a donc un problème de "setlocale". Mais voilà, je ne comprends pas comment résoudre ce problème.
    Je suppose qu'il faudrait régler ce "setlocale" de mon Linux de la même façon que cet OSX, mais comment ?
    Pourriez vous m'aiguiller sur le sujet ?

    Je vous remercie grandement par avance !

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 686
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 686
    Par défaut
    Bonjour,

    c'est rsync qui te laisse ces fichiers ? ou tu exécutes une commande que tu ne nous as pas montré qui échoue, et alors avec quel message d'erreur ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 325
    Par défaut
    bonjour

    oui, il nous manque des infos
    - Tu sembles copier en root, un problème de droit ?
    - ce n'est pas l'espace dans le nom qui pose un problème ?

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 385
    Par défaut
    Non, c'est bien l'encodage le problème: \314\201 (c'est de l'octal) est la manière pour apple d'encoder le "é" (ce qui n'est pas de l'utf8).

    Mais attendons qu'il répond à N_BaH ...

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 866
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par N_BaH Voir le message
    c'est rsync qui te laisse ces fichiers ?
    Ca pourrait être leur nom d'origine sous Mac. Je me souviens à mes débuts dans l'informatique, on avait encore des imprimantes à aiguille.
    Et notre chef avait l'habitude de lister régulièrement tous nos fichiers et d'imprimer ce listing (ls -Rals /home/machin |lpr) pour examiner notre répertoire voir si tout était conforme à sa vision d'un dossier Unix respectable.

    Moi j'avais créé un fichier dont le nom était "flèche haut, flèche gauche, flèche droite, flèche gauche, flèche gauche, flèche haut". Quand l'imprimante arrivait à ce nom, elle faisait "scratch scrotch scratch" et te déchirait le papier
    Mais fatalement pour ensuite aller effacer un tel fichier...

    Citation Envoyé par PicPoc Voir le message
    Il y a donc un problème de "setlocale". Mais voilà, je ne comprends pas comment résoudre ce problème.
    Pour le "setlocale" d'ici je vois pas trop. Mais pour effacer le fichier, pas de souci
    • rm -i * => ca te montrera chaque fichier à effacer, et pour chacun tu devras répondre "oui/non"
    • sed -e "s/^/rm /" < <(ls) >xxx; vi xxx et dans l'éditeur tu ne gardes que les lignes qui concernent les fichiers que tu veux effacer, puis tu sauvegardes et quittes et quand tu es revenu dans le shell tu tapes bash ./xxx => ça exécutera toutes les lignes donc tous les "rm"

    Pour revenir au setlocale, tu peux commencer par taper la commance locale sur ton Linux et sur mac et voir si les résultats sont identiques ou pas...

    Citation Envoyé par PicPoc Voir le message
    Je suis relativement novice en ligne de commande, je bricole quoi...
    Alors évite de travailler sous root... (d'ailleurs même quand tu ne seras plus novice, il faudra conserver cette habitude de ne pas travailler sous root mais bon, quand tu ne seras plus novice tu auras compris que 1) c'est dangereux et 2) c'est inutile)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 385
    Par défaut
    Essayes d'ajouter l'option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    --iconv=utf-8-mac,utf-8
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2022
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2022
    Messages : 15
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    c'est rsync qui te laisse ces fichiers ? ou tu exécutes une commande que tu ne nous as pas montré qui échoue, et alors avec quel message d'erreur ?
    Bonsoir
    Les fichiers sont bien copiés, aucune erreur, sinon je l'aurais spécifié.
    C'est bien un "problème de nom". C'est comme si la conversion entre deux système de caractères pose problème à l'arrivée... Ce n'est pas évident car je n'arrive pas à savoir pourquoi.
    J'ai surtout vu ca avec différents Linux.

    Citation Envoyé par papajoker Voir le message
    bonjour
    oui, il nous manque des infos
    - Tu sembles copier en root, un problème de droit ?
    - ce n'est pas l'espace dans le nom qui pose un problème ?
    Je n'ai aucun problème de droit.

    Citation Envoyé par disedorgue Voir le message
    Non, c'est bien l'encodage le problème: \314\201 (c'est de l'octal) est la manière pour apple d'encoder le "é" (ce qui n'est pas de l'utf8).
    C'est ce que je me disais...

    Citation Envoyé par Sve@r Voir le message
    Pour revenir au setlocale, tu peux commencer par taper la commance locale sur ton Linux et sur mac et voir si les résultats sont identiques ou pas...
    Merci. Pour effacer, ce n'est pas un problème par la ligne de commande en version "hard". Les fichiers ne s'effacent pas de façon simple, et pas SMaba l'utilisateur ne peux pas les effacer.
    A cause du mauvais "codepage", du nom pas correct.

    Donc le retour c'est :

    -Sur le Mac :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # locale
    LANG="fr_FR.UTF-8"
    LC_COLLATE="fr_FR.UTF-8"
    LC_CTYPE="fr_FR.UTF-8"
    LC_MESSAGES="fr_FR.UTF-8"
    LC_MONETARY="fr_FR.UTF-8"
    LC_NUMERIC="fr_FR.UTF-8"
    LC_TIME="fr_FR.UTF-8"
    LC_ALL=
    -Sur le Linux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # locale
    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL=en_US.UTF-8
    Comment changer cette valeur "locale" sur Linux ? Merci

    Citation Envoyé par chrtophe Voir le message
    Essayes d'ajouter l'option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    --iconv=utf-8-mac,utf-8
    Merci, mais hélas, ça ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    iconv_open("UTF-8", "utf-8-mac") failed
    rsync error: requested action not supported (code 4) at rsync.c(132) [sender=3.2.3]
    rsync error: received SIGUSR1 (code 19) at main.c(1592) [Receiver=3.2.3]

  8. #8
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 385
    Par défaut
    Mauvais sens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    --iconv=utf-8,utf-8-mac
    Désolé.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 325
    Par défaut
    Citation Envoyé par PicPoc Voir le message
    Merci. Pour effacer, ce n'est pas un problème par la ligne de commande en version "hard". Les fichiers ne s'effacent pas de façon simple, et pas SMaba l'utilisateur ne peux pas les effacer.
    Il t'a été demandé quelles commandes tu passes (et l'erreur exacte)

    Pas compris, tu sembles dire que tu peux effacer en ligne de commande ? mais pas avec smb ???

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 866
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PicPoc Voir le message
    Pour effacer, ce n'est pas un problème par la ligne de commande en version "hard". Les fichiers ne s'effacent pas de façon simple, et pas SMaba l'utilisateur ne peux pas les effacer.
    Qu'entends-tu "de façon simple"??? Pour moi la commande rm est la plus simple. Et si un fichier est créé par un userX, alors il est assez naturel qu'un userY ne puisse pas l'effacer. Bon en réalité c'est un peu plus complexe car l'effacement d'un fichier est géré par le droit "w" du dossier qui le contient. Donc si tu veux savoir si tu peux effacer le fichier "xxx/toto" il faut regarder les droits de "xxx" (et, aussi paradoxal que cela paraisse, les droits de "toto" n'entrent pas en ligne de compte). Ainsi pour le dossier, w=possible, pas w=pas possible (plus éventuellement le sticky-bit qui protège les dossiers de travail tel /tmp contre l'effacement)
    Et donc si un userX écrit chez-toi (parce que tu lui autorises) tu peux quand-même effacer les fichiers qu'il te dépose (parce qu'il les dépose dans un dossier qui est à toi et dont tu contrôles les droits).

    Citation Envoyé par PicPoc Voir le message
    Comment changer cette valeur "locale" sur Linux ?
    Ben.. tu peux écrire
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    export LANG="fr_FR.UTF-8"
    export LC_COLLATE="fr_FR.UTF-8"
    export LC_CTYPE="fr_FR.UTF-8"
    export LC_MESSAGES="fr_FR.UTF-8"
    export LC_MONETARY="fr_FR.UTF-8"
    export LC_NUMERIC="fr_FR.UTF-8"
    export LC_TIME="fr_FR.UTF-8"
    dans un fichier "toto" puis taper la commande source toto. Mais le souci c'est que peut-être tu verras bien les noms de tes fichiers en provenance de Mac... mais tu perdras probablement la vision des noms de fichiers de ton Linux d'origine. Si le fichier se nomme "ann\314\201es" alors il ne se nomme pas "années". Autant "a" ce n'est pas "A", autant "\314\201" ce n'est pas "é".

    Citation Envoyé par PicPoc Voir le message
    iconv_open("UTF-8", "utf-8-mac") failed
    Il ne semble pas trouver le format "utf-8-mac" (tu peux le vérifier via la commande iconv -l |grep -y mac). Peut-être que ça peut se rajouter...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/02/2016, 19h18
  2. Réponses: 8
    Dernier message: 04/04/2013, 17h37
  3. Script pour effacer des fichiers après x jours
    Par Chakalaka dans le forum Débuter
    Réponses: 4
    Dernier message: 14/04/2011, 19h55
  4. [Batch] Suppression fichiers après transfert FTP
    Par Sami Xite dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 30/11/2009, 17h47
  5. problème : AssertionError comment résoudre ?
    Par remy8957 dans le forum Général Python
    Réponses: 1
    Dernier message: 21/09/2009, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo