GNU/Linux >> Tutoriels Linux >  >> Linux

Création forcée de lien(s) physique(s) de répertoire ?

Je comprends pourquoi presque toutes les versions d'Unix n'autorisent pas la liaison physique des répertoires (en fait, HFS + sur OS X est le seul que je connaisse, mais même cela n'est pas facile à faire soi-même). Cependant, tous les systèmes de fichiers prennent en théorie en charge les répertoires liés en dur, car tous les répertoires contiennent au moins un lien physique supplémentaire vers eux-mêmes, ainsi que des liens physiques supplémentaires dans les sous-répertoires pointant vers leur parent.

Maintenant, je me rends compte que le hard-linking peut être dangereux s'il est mal utilisé, car il peut créer des structures cycliques que peu de programmes vérifieront, et ainsi se retrouver coincé dans une boucle infinie. Cependant, j'espérais utiliser des liens physiques pour créer une sauvegarde de style Time Machine pouvant fonctionner pour n'importe quel Unix. Je ne pense pas que ce type de structure soit dangereux, car les liens pointent simplement vers des sauvegardes précédentes ; il ne devrait y avoir aucun risque de lien cyclique. Dans mon cas, j'utilise actuellement rsync pour créer des liens physiques vers des fichiers existants, mais c'est lent et inutile, en particulier avec de très grandes sauvegardes et surtout si je sais déjà quels répertoires sont inchangés.

Dans cet esprit, existe-t-il un moyen de forcer la création de liens physiques vers les répertoires sur les variantes Unix ? ln n'est vraisemblablement pas bon car c'est l'endroit où de nombreuses saveurs Unix mettent leurs restrictions afin d'empêcher les répertoires de liaison en dur, et ln les versions qui prennent en charge les répertoires liés en dur indiquent spécifiquement que l'opération est susceptible d'échouer. Mais pour quelqu'un qui connaît les risques et sait que son cas d'utilisation est sûr, existe-t-il un moyen de créer le lien de toute façon ? Idéalement pour un script shell, mais si j'ai besoin de compiler un petit programme pour le faire, je suppose que je pourrais.

Réponse acceptée :

Ne faites pas ça. Si vous souhaitez avoir un système de sauvegarde utilisant des liens physiques pour économiser de l'espace, mieux vaut utiliser rsync avec --link-dest , qui établira un lien dur avec les fichiers de manière appropriée pour économiser de l'espace, sans causer les problèmes que cela entraîne (c'est-à-dire que la liaison physique entre les répertoires est une corruption du système de fichiers et l'amènera à signaler un nombre incorrect d'inodes + échouer fsck + a généralement une sémantique inconnue car il n'est pas un DAG ).


Linux
  1. 5 exemples pour créer plusieurs répertoires sous Linux

  2. Simuler un lien physique vers un répertoire ?

  3. Comment créer des liens souples et physiques sous Linux

  4. Créer un lien symbolique de répertoire dans Ubuntu

  5. Comment créer un lien vers un répertoire

Créer et configurer des répertoires setgid pour la collaboration – Préparation des objectifs RHCSA

Comment créer des répertoires sous Linux (commande mkdir)

Créer des raccourcis vers les répertoires fréquemment utilisés sous Linux

La commande ln sous Linux :créer des liens logiciels et matériels

Comment créer des commandes personnalisées sous Unix/Linux ?

Créez un autre raccourci `~~` comme `~` (répertoire personnel)