Forum général.cherche-logiciel Opérations ensembliste sur les répertoires

Posté par  . Licence CC By‑SA.
Étiquettes :
1
10
juin
2014

Bonjour,

Je cherche à nettoyer mon répertoire maildir, particulièrement mon arborescence gmail que j'ai sauvé avant de fermer mon compte. Il y a un répertoire "tous les messages" qui comme son nom l'indique contiens a priori que des doublons. A priori…

J'aimerais savoir s'il existe des mails qui ne sont que dans ce répertoire pour une obscure raison.

Est-ce que vous savez un si un tel outil existe ? Un qui ressemblerait à foo "tous_messages \ (recus \/ envoyes)" et qui sorte la liste des fichiers de cet ensemble
Si non, est-ce que vous pensez qu'il existe un besoin ?
Est-ce que vous voyez un moyen plus simple et ou élégant de le faire ?

Merci beaucoup :)

  • # deux options

    Posté par  . Évalué à 3.

    Soit tu utilise un programme en ligne de commande qui agit sur les fichiers, soit tu importe ton arborescence dans Thunderbird, puis tu utilise une extension pour supprimer les doublons.

    Pour la ligne de commande, j'ai utilisé fdupes par le passé, mais jamais avec un maildir. Je te conseille de lancer le programme une fois avec l'option -m (summarize)

    Sinon, pour l'option Thunderbird, plus longue, utilise cette extension: https://addons.mozilla.org/en-US/thunderbird/addon/remove-duplicate-messages/

  • # "Tous les messages" ne contient pas que des doublons

    Posté par  (site web personnel) . Évalué à 2.

    Le dossier "Tous les messages" ne contient pas que des doublons : les doublons sont uniquement ceux qui ont un autre tag ("boîte de réception" étant un tag, pour GMail). Donc tous les e-mails qui n'a pas de tag (typiquement, ceux pour lesquels tu avais cliqué sur "Archiver" dans l'interface de GMail) ne sont que dans ce dossier.

  • # Set operations

    Posté par  (site web personnel) . Évalué à 2.

    Quelque chose comme ça? http://www.catonmat.net/blog/set-operations-in-unix-shell/

    Honnêtement je crois que crois que j'opterais plutôt pour un petit script en Python :-)

    • [^] # Re: Set operations

      Posté par  . Évalué à 2.

      Le problème c'est que dans mon cas les ensembles sont les contenus de répertoires, pas de fichiers.
      Mais effectivement travailler sur des fichiers contenant les hashs des mails ça peut être une solution.

      Please do not feed the trolls

  • # les répertoires et les vues

    Posté par  . Évalué à 3. Dernière modification le 10 juin 2014 à 16:26.

    Dans Gmail, il n'y a que trois répertoires :
    - Tous les messages
    - Spam
    - Poubelle

    Les autres "répertoires" sont fictifs, en réalité ce sont les résultats de requêtes implicites : select les mails de 'Tous les messages' ayant telle étiquette (Boite de réception, Messages envoyés, Chat, ou bien une étiquette personnalisée créée par l'utilisateur). Un mail n'est jamais dupliqué : si on le supprime d'une des vues où il apparaît, il est supprimé de 'Tous les messages' et donc de toutes les autres vues où il apparaît éventuellement.

    Si on accède à son compte via un client IMAP, on a le même fonctionnement.

    En revanche, si on archive localement les messages de 'Tous les messages' ainsi que ceux "apparaissant" dans les vues, on va peut effectivement avoir des doublons. Si on n'est pas intéressé par les étiquettes, le plus simple est de ne garder que le répertoire 'Tous les messages' (et, s'il y a lieu, les répertoires Spam et Poubelle). Si on veut garder les étiquettes, c'est qu'on veut garder les doublons => les éliminer ne fait pas de sens.

    • [^] # Re: les répertoires et les vues

      Posté par  . Évalué à 1.

      Je me corrige : éliminer les doublons tout en voulant garder l'info donné par les étiquettes peut faire sens si dans gmail aucun mail n'a été affecté de plus d'une étiquette (automatiquement ou via une action utilisateur). Ils n'apparaissent donc que dans le répertoire local 'Tous les messages' et dans, au plus, un autre répertoire du nom de l'étiquette. On peut alors vouloir supprimer les occurrences présentes dans le répertoire 'Tous les messages' si le même message apparaît aussi dans un autre répertoire, et un seul autre. A la fin de l'opération, le répertoire 'Tous les messages' gagnera à être renommé, 'Autres messages' par exemple.

      • [^] # Re: les répertoires et les vues

        Posté par  . Évalué à 2.

        si message dans un dossier étiquette alors supprimer de "tous les messages", c'est ça ?

        Les doublons porteront le même nom.
        Il est donc possible de faire qqch comme ça:

        ls -1 "étiquette1" "étiquette2" ... | sort -u > e.txt
        ls -1 "tous les messages" > t.txt
        comm -12 e.txt t.txt > comm.txt
        cd "tous les messages"
        rm $(cat ../comm.txt)

        • [^] # Re: les répertoires et les vues

          Posté par  . Évalué à 4.

          De tête pas testé tu dois pouvoir faire quelque chose comme ça du coup :

          sort <(ls -1 "étiquette1" "étiquette2" ... | sort -u) <(ls -1 "tous les messages") | uniq -d | xargs rm

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.