Dans Windows 7, comment puis-je vérifier si un fichier est un lien symbolique ou non, si un dossier est une jonction ou non, et comment puis-je vérifier où ils pointent (au cas où ils seraient un lien symbolique / une jonction). À la fois dans l'Explorateur et dans la ligne de commande.
Il est très important d'avoir un moyen de le faire à partir de la ligne de commande, afin de savoir comment dupliquer des liens symboliques sur un autre ordinateur lorsque vous souhaitez créer une réplique exacte d'une arborescence de dossiers.
Si je clique avec le bouton droit sur un fichier et cochez "Propriétés", je ne trouve aucune indication qu'il s'agit d'un lien symbolique.
la source
dir /a
puis appuyer sur Entrée. Si vous n'incluez pas le / a, Windows ne répertorie pas les points de jonction. Vous pouvez essayer la différence entredir
etdir /a
sur le répertoire\Users\YourUsername
Copié à partir de StackOverFlow , je viens d'utiliser cette ligne, et cela fonctionne
fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link
Explication :
À partir de MSDN sur FSUtil: effectue des tâches liées aux systèmes de fichiers FAT (File Allocation Table) et NTFS, telles que la gestion des points d'analyse, la gestion des fichiers épars ou le démontage d'un volume. S'il est utilisé sans paramètres, fsutil affiche une liste des sous-commandes prises en charge.
Pour notre usage, nous nous soucions juste qu'il génère une ligne qui a "Lien symbolique" en elle, si elle est symbolique, que nous puis
find
, et sifind
réussit, nous sortons une chose, si ce n'est pas le cas, nous sortons autre chose.Remarques :
la source
À l'aide de PowerShell, sur au moins le système d'exploitation Windows, vous pouvez trouver des liens symboliques dans n'importe quel répertoire donné, tels que les suivants:
Une alternative plus concise serait d'utiliser
Get-ChildItem
l'alias dels
:Et vous pouvez obtenir des informations pertinentes sur un lien symbolique en effectuant l'une des opérations suivantes:
Obtenez l'élément de fichier et affichez sa propriété Target . La cible étant la "valeur" du lien symbolique. De plus, les signatures de méthode ou de commande pour créer des liens symboliques lors de la juxtaposition entre les systèmes d'exploitation, les noms d'arguments de: `` cible '', `` chemin '' et / ou `` valeur '' peuvent avoir des significations différentes de celles d'une autre signature de méthode sur un système d'exploitation différent.
Obtenez l'élément de fichier et affichez sa propriété LinkType . Un élément avec une valeur LinkType de SymbolicLink signifie que c'est bien, symbolique.
Obtenez l'élément de fichier et affichez sa propriété Mode . Un élément avec
l
dans la valeur Mode indique qu'il s'agit d'un lien symbolique.Obtenez l'élément de fichier et affichez sa propriété Attributes . Un élément attribué avec une valeur ReparsePoint peut être indicatif d'un lien symbolique.
la source
Ne pas utiliser
fsutil
pour vérifier si un élément est un lien symbolique ou non. Au début, parce que errorlevel contient des erreurs, il reste parfois à 0 et un vrai dossier est considéré comme un lien symbolique. Le niveau d'erreur n'est pas fiable.Un problème avec
find
est parce quefind "Symbolic Link"
c'est possible en anglais, mais pas dans d'autres langues.La bonne façon est de rechercher à partir des attributs:
Les attributs obtenus avec% a sont "drahscotlep" et "l" est pour le lien symbolique.
la source
Voici un script bash cygwin pour enregistrer les liens symboliques, ajoutez vos dossiers préférés à la première ligne
la source
À Powershell:
la source
tous les crédits à @SecurityAndPrivacyGuru , [cmd]
script / fonction batch complet qui lit le lien symbolique {| s dans le dossier} et affiche la liste avec eux et leurs chemins cibles
la source
Si vous voulez vraiment utiliser fsutil, vous pouvez utiliser les deux techniques pour éviter l'échec du niveau d'erreur. (J'utilise ver> nul pour réinitialiser le niveau d'erreur)
la source