Admin/Dev

24
Sept.
2020

Astuce terminal : Trouver si un fichier ou un dossier est utilisé en tant que lien symbolique

Publié par sky

Voici la solution pour réaliser une action très spécifique, mais qui a été très utile dernièrement. Ici, il s'agit de savoir si un fichier ou un dossier est utilisé en tant que lien symbolique à un autre endroit.

Pour cela nous allons utiliser le terminal, et en particulier la commande find.

Imaginons un dossier MaSource, dans lequel je veux savoir si il y a un lien vers le dossier MonDossierLie ou un fichier qu'il contiendrait.

Voici la commande à taper

find /chemin/vers/MaSource -type l -exec readlink {} \; | grep MonDossierLie

Si la commande renvoie des résultats, des fichiers ou le dossier lui-même sont liés quelque part dans MaSource. Le résultat vous donnera même les éléments liés.

 

Quelques explications ?

Regardons en détail la commande, que l'on va découper en 3 étapes.

La première application utilisée est find, une application qui permet de retrouver des éléments. On lui indique où chercher, puis l'on indique que l'on cherche les liens symboliques.

find /chemin/vers/MaSource -type l

Ensuite, appliquée sur les résultats, on execute la commande readlink qui va permettre d'indiquer le chemin source des liens trouvés.

find /chemin/vers/MaSource -type l -exec readlink {} \;

Enfin, sur les chemins trouvés, on ne récupère que les lignes dont le chemin contient l'élément recherché, avec la commande grep, pour obtenir la commande complète.

find /chemin/vers/MaSource -type l -exec readlink {} \; | grep MonDossierLie

 

Et si je souhaite aussi avoir le chemin du lien ?

Si en plus du fichier lié, vous souhaitez connaitre le chemin vers le lien, il suffit de remplacer la commande readlink, par une autre qui afficherait les deux valeurs. Il s'agira de la commande ls, tout simplement, qui dans son affichage "long" donne les deux valeurs.

find /chemin/vers/MaSource -type l -exec ls -l {} \; | grep MonDossierLie

 

En espérant que cela aide quelqu'un d'autre que moi :-)

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
 
Tout accepter Tout refuser Gérer