J'étais en train d'exécuter un script qui parcourait tous les fichiers de mon système Linux et créait des métadonnées à leur sujet. Une erreur s'est produite lorsqu'elle a heurté un lien symbolique brisé.
Je suis novice en * nix, mais je comprends l'idée principale de la liaison de fichiers et de la façon dont les liens rompus sont créés. Pour autant que je sache, ils sont comme l'équivalent de déchets dans la rue. Les éléments qu'un programme que je supprimais n'étaient pas assez intelligents pour indiquer au gestionnaire de paquets qu'il existait et y appartenaient, ou quelque chose qui a été laissé pour compte lors d'une mise à niveau. Au début, j'ai commencé à peaufiner le script que je courais pour les ignorer, puis je me suis dit: "On pourrait toujours les supprimer pendant qu'on est ici ..."
J'utilise Ubuntu 14.04 (Trusty Tahr). Je ne vois aucune raison de ne pas le faire, mais avant de poursuivre et d’examiner cette question dans mon système de développement, n’existe-t-il aucune raison pour que ce soit réellement une idée terrible? Les liens symboliques brisés servent-ils à quelque chose dont je ne suis pas au courant?
Réponses:
Les liens symboliques brisés sont multiples:
Résolution: supprimez le lien symbolique brisé.
Résolution: recherchez la cible voulue et corrigez le lien.
Résolution: recherchez la cible et corrigez le lien.
Résolution: aucune, le lien n'est pas rompu partout.
Résolution: aucune, le lien n'est pas rompu pour tout le monde.
Résolution: aucune. Dans ce cas, la suppression du lien serait préjudiciable.
Si vous pouvez déterminer qu'un lien symbolique tombe dans la première catégorie, alors bien sûr, supprimez-le. Sinon, abstiens-toi.
Un programme qui parcourt les répertoires de manière récursive et se soucie du contenu des fichiers doit généralement ignorer les liens symboliques brisés.
la source
Ne supprimez pas aveuglément tous les liens symboliques qui pendent. Ils peuvent n’exister que pour transporter certaines informations et peuvent être plus sûrs que les fichiers normaux, car la création d’un lien symbolique est atomique.
Par exemple, Firefox crée un fichier de verrouillage "lock" qui est un lien symbolique dont la valeur a la forme "IP_address: + PID".
la source
Les serveurs Web fnord et Gatling utilisent tous deux le système de fichiers Unix comme base de données de configuration (par exemple, Microsoft IIS, qui utilise le registre Windows, ou Apache, qui utilise un fichier de configuration complexe).
Par exemple, les hôtes virtuels ne sont que des répertoires et la création d'un nouvel hôte virtuel est aussi simple que
Configurer quels fichiers servir?
Configurer quels fichiers exécuter en tant que CGI et lesquels servir?
Et enfin (et en rapport avec cette question): configurer une redirection?
Vous aurez maintenant un lien symbolique appelé
search.html
qui ne pointe nulle part, mais il est crucial pour le fonctionnement de votre site.la source
Un lien symbolique peut pointer vers un emplacement encore très lourd simplement pour forcer la création à un emplacement ou un nom de système de fichiers spécifique.
Donc non, ne les enlevez pas aveuglément.
la source
Un inconvénient majeur de la suppression des liens symboliques périmés est que vous perdez la référence à l'endroit où ils indiquaient ce qui peut être très utile!
Supposons que j'ai un lien symbolique vers un fichier appelé "
send_to
" qui pointe vers/Users/myname/tmp
et suppose que cela/Users/myname/tmp
n'existe pas.Avec le lien symbolique , je sais où le fichier a été destiné à être. Par exemple, dans ce cas, je peux voir qu’il s’agit d’un répertoire temporaire et si j’ai besoin de le "réparer", je devrais considérer un répertoire temporaire comme destination.
De même, un lien "
my_config
" pointant sur "/etc/conf_file
qui va mal" parce que leconf_file
nom renommé confirmation_file est toujours une information utile. Si vous êtes allé dans le/etc
répertoire et que vous avezls
vu le fichierconf_file
manquant maisconfirmation_file
que vous y étiez, vous auriez peut-être assez d’informations pour réparer le lien.la source
Citant The Linux Command Line (meilleur livre de tous les temps pour les débutants Linux, et vous pouvez le télécharger gratuitement ici ):
Donc, non, je ne supprimerais pas les liens symboliques, ce qui serait certainement un casse-tête et vous risqueriez de détériorer gravement votre système.
la source