Question

J'ai deux fichiers identiques stockés dans plus d'un endroit sur mon disque dur. Je me dis que je peux économiser beaucoup d'espace disque en les lier entre eux pour pointer vers le même fichier. Je suis un peu inquiet au sujet des effets secondaires éventuellement désastreux.

Je suppose que cela ne modifie pas les autorisations, que ceux-ci sont stockés dans les répertoires respectifs, tout comme le nom du fichier, non? (Mise à jour: Apparemment, je devinais mal, les permissions sont partagés, comme Carl démontre dans sa réponse)

La plus grande préoccupation est des changements à un fichier par mégarde changeant aussi les autres fichiers. Lecture seule des fichiers doivent être sûrs alors. Et les fichiers qui peuvent être modifiés sont aussi bien, si au lieu de la mise à jour dans le fichier existant, un nouveau fichier est écrit. Je crois que la plupart des applications fonctionnent de cette façon, mais probablement pas tous.

Y at-il autre chose à considérer?

Je suis sur OS X / HFS +.

Était-ce utile?

La solution

Ne pas utiliser des liens durs si vous souhaitez que les modifications à un fichier ne doit pas être reflétées dans d'autres fichiers. C'est le point de l'ensemble des liens durs - plusieurs entrées du répertoire pour les mêmes blocs (sur disque) même fichier . Modification des autorisations sur un des noms d'un lien dur les changements à la fois:

$ touch file
$ ln file link
$ ls -l
total 0
-rw-r--r--  2 owner group  0 Nov 11 16:44 file
-rw-r--r--  2 owner group  0 Nov 11 16:44 link
$ chmod 444 file
$ ls -l
total 0
-r--r--r--  2 owner group  0 Nov 11 16:44 file
-r--r--r--  2 owner group  0 Nov 11 16:44 link

A partir de la page man ln:

  

Un lien vers un fichier ne se distingue pas de l'entrée de répertoire d'origine; toute modification apportée à un fichier sont effectivement indépendant du nom utilisé pour référencer le fichier.

Autres conseils

J'ai écrit un petit script pour faire exactement cela. Je serais seulement préoccupé par les autorisations si votre sauvegarde Spanning plusieurs utilisateurs ou les fichiers système.

J'ai eu un tas de vieilles sauvegardes sur CD et DVD, dont beaucoup ont eu beaucoup de données redondantes sur eux. Plutôt que de passer au crible toutes ces informations et supprimer les doublons, je pris la route Time Machine et ont établi des liens durs entre tous les fichiers correspondants (le contenu vraiment correspondant, je pris une somme de contrôle SHA1 de tous).

Maintenant, tous mes volumes de sauvegarde regarder comme ils le feraient autrement et la plupart des fichiers redondants sont de l'histoire. L'un hoquet est que beaucoup de stocker les métadonnées des fichiers multimédia dans le contenu du fichier de sorte que chaque version est légèrement différente. Voir cet article pour le code python. Pas de garantie !!!

Assurez-vous mdimport your_backup_dir/ après: Spotlight et Finder obtenir un peu énervée quand vous faites des manipulations de données massives. J'ai dédupliquées mon dossier de sauvegarde 240 Go de cette manière et il a fallu environ 45 minutes.

A noter également, la plupart des applications OSX casseront vos liens durs et enregistrer dans une nouvelle inode, la plupart UNIX'y applications probablement préservera les liens durs (sauf emacs, j'entends).

ne sont généralement pas liens symboliques en dur une meilleure pratique. bon vieux liens souples / symboliques (ln -s) devraient servir tout aussi bien.

Si votre objectif principal est de « Time dedupe sauvegardes Time Machine » comme vous le mentionnez dans l'un des commentaires, puis une autre option qui permet d'éviter certaines de vos préoccupations serait d'éliminer les dupes de Time Machine en utilisant la préférences de Time machine . Vous pouvez exclure au niveau du répertoire ou fichier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top