Forum Linux.général hardlink → comment défaire ?

Posté par (page perso) . Licence CC by-sa.
Tags :
2
23
jan.
2018

Si vous avez l'habitude de multiplier les dossiers de photos partout et n'importe comment, et que vous avez donc toutes les raisons de penser que de nombreuses photos et vidéos s'y retrouvent en de multiples exemplaires, alors vous aurez peut-être envie d'utiliser la commande hardlink !

hardlink -s 1M leDossier

Le dossier sera parcouru de manière récursive et les fichiers de taille identiques seront comparés. Si un ou plusieurs fichiers sont identique, alors il n'en sera gardé qu'un pour autant de liens matériels et l'on gagnera autant (-1) de fois la place sur le disque (ou autre support).

J'utilise régulièrement hardlink, surtout pour mes sauvegardes.

Ma question est, comment défaire ce que hardlink à pu faire ?

PS: sachant que je n'ai pas la place pour faire une copie de l'ensemble du dossier ;)

Comment obtenir que tous les liens machines soient transformés en autant de fichiers indépendants ?

Par exemple, dans la commande donnée ci-dessus en exemple, je limite à 1 Mio la taille minimum que les fichiers doivent avoir pour être considérés par hardlink. Mais il se pourrait que dans la précipitation j'ai oublié cette option. Des petits fichiers aurons alors été "fusionnés" alors qu'il ne devrait pas l'être :(

Merci d'avance.

  • # cp -a && mv -f

    Posté par . Évalué à 4.

    Tu copie (cp -a, pour préserver les méta-données) avec un nom temporaire le fichier que tu veux re-dupliquer, puis tu fais un mv -f du nom temporaire vers le nom d'origine pour "défaire" le lien physique.
    Combine ça avec find pour trouver tous les fichiers ayant plus d'un lien physique (et d'autres critères à ta convenance).

  • # Merci

    Posté par . Évalué à 1.

    Tu viens de me faire gagner un temps fou. Merci.

  • # Question

    Posté par . Évalué à 2.

    Comment la commande hardlink vérifie-t-elle que 2 fichiers sont identiques (après avoir vérifié la taille) ?
    Avec des sommes de contrôle ?
    Lesquelles ?

    • [^] # Re: Question

      Posté par (page perso) . Évalué à 1.

      Je pense que regarder les sources de hardlink était plus rapide que poser la question. La réponse est dans la fonction file_contents_equal. ;p

      Debian Consultant @ DEBAMAX

Suivre le flux des commentaires

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