symbolic link

Supprimer tous les liens symboliques dans un dossier

Comment supprimer tous les liens symboliques d'un dossier (des dizaines)en une seule fois ? Il n'est pas pratique d'insérer chacun d'entre eux à la main en utilisant unlink ou rm.


Vous pouvez utiliser la commande find - pour le faire :

find /path/to/directory -maxdepth 1 -type l -delete

Pour plus de sécurité, vérifiez d'abord sans l' -delete - :

find /path/to/directory -maxdepth 1 -type l

-maxdepth 1 garantit que find ne cherchera que dans /path/to/directory mais pas dans ses sous-dossiers pour les liens symboliques. N'hésitez pas à jeter un oeil à man find .




Lister les liens dans le dossier alias du répertoire courant et vérifier que vous souhaitez vraiment les supprimer,

find -type l -ls                  # recherche aussi dans les sous-répertoires

find -maxdepth 1 -type l -ls      # recherche uniquement dans le répertoire lui-même

Si les choses semblent bonnes et que vous souhaitez supprimer ces liens, exécutez

find -type l -delete              # supprimer également dans les sous-répertoires

find -maxdepth 1 -type l -delete  # supprimer uniquement dans le répertoire lui-même

Si vous souhaitez supprimer interactivement , vous pouvez utiliser la ligne de commande suivante (c'est plus sûr)

find -type l -exec rm -i {} +              # supprimer également dans les sous-répertoires

find -maxdepth 1 -type l -exec rm -i {} +  # supprimer uniquement dans le répertoire lui-même