Un lien symbolique, également appelé lien symbolique, est un type spécial de fichier qui pointe vers un autre fichier ou répertoire. C'est quelque chose comme un raccourci dans Windows. Un lien symbolique peut pointer vers un fichier ou un répertoire sur le même système de fichiers ou sur une autre partition.
Dans ce guide, nous allons vous montrer comment supprimer (supprimer) des liens symboliques dans les systèmes Linux/UNIX en utilisant le rm
, unlink
, et find
commandes.
Avant de commencer #
Pour supprimer un lien symbolique, vous devez disposer des droits d'écriture sur le répertoire contenant le lien symbolique. Sinon, vous obtiendrez l'erreur "Opération non autorisée".
Lorsque vous supprimez un lien symbolique, le fichier vers lequel il pointe n'est pas affecté.
Utilisez le ls -l
commande pour vérifier si un fichier donné est un lien symbolique et pour trouver le fichier ou le répertoire vers lequel pointe le lien symbolique.
ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
Le premier caractère "l" indique que le fichier est un lien symbolique. Le symbole "->" indique le fichier vers lequel pointe le lien symbolique.
Supprimer les liens symboliques avec rm
#
Le rm
La commande supprime les fichiers et répertoires donnés.
Pour supprimer un lien symbolique, invoquez le rm
commande suivie du nom du lien symbolique en argument :
rm symlink_name
En cas de succès, la commande se termine avec zéro et n'affiche aucune sortie.
Avec rm
vous pouvez supprimer plusieurs liens symboliques à la fois. Pour ce faire, passez les noms des liens symboliques en arguments, séparés par un espace :
rm symlink1 symlink2
Pour être invité avant de supprimer le lien symbolique, utilisez le -i
choix :
rm -i symlink_name
Pour confirmer tapez y
et appuyez sur Enter
.
rm: remove symbolic link 'symlink_name'?
Si le lien symbolique pointe vers un répertoire, ne pas ajouter le /
barre oblique à la fin. Sinon, vous obtiendrez une erreur :
rm symlink_to_dir/
rm: cannot remove 'symlink_to_dir/': Is a directory
Si le nom de l'argument se termine par /
, le rm
La commande suppose que le fichier est un répertoire. L'erreur se produit car, lorsqu'il est utilisé sans le -d
ou -r
option, rm
ne peut pas supprimer les répertoires.
Par mesure de sécurité, ne jamais -r
option lors de la suppression des liens symboliques avec rm
. Par exemple, si vous tapez :
rm -f symlink_to_dir/
Le contenu du répertoire cible sera supprimé.
Supprimer les liens symboliques avec unlink
#
Le unlink
La commande supprime un fichier donné. Contrairement à rm
, unlink
n'accepte qu'un seul argument.
Pour supprimer un lien symbolique, exécutez la commande unlink
commande suivie du nom du lien symbolique comme argument :
unlink symlink_name
Si la commande s'exécute avec succès, elle n'affiche aucune sortie.
Ne pas ajouter le /
barre oblique à la fin du nom du lien symbolique car unlink
ne peut pas supprimer les répertoires.
Rechercher et supprimer les liens symboliques brisés #
Si vous supprimez ou déplacez le fichier source vers un autre emplacement, le fichier symbolique restera en suspens (cassé).
Pour trouver tous les liens symboliques rompus sous un répertoire donné, exécutez la commande suivante :
find /path/to/directory -xtype l
/path/to/directory/symlink1
/path/to/directory/subdir/symlink2
La commande listera tous les liens rompus sous le répertoire et ses sous-répertoires.
Si vous souhaitez exclure les liens symboliques contenus dans les sous-répertoires, passez le -maxdepth 1
option pour find
:
find /path/to/directory -maxdepth 1 -xtype l
/path/to/directory/symlink1
Une fois que vous avez trouvé les liens symboliques cassés, vous pouvez soit les supprimer manuellement avec rm
ou unlink
ou utilisez le -delete
option de find
commande :
find /path/to/directory -xtype l -delete
Conclusion #
Pour supprimer un lien symbolique, utilisez soit le rm
ou unlink
commande suivie du nom du lien symbolique comme argument. Lorsque vous supprimez un lien symbolique pointant vers un répertoire, n'ajoutez pas de barre oblique à la fin du nom du lien symbolique.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.