1 votes

Fichier ou répertoire résilient lié ou mise à jour automatique des liens ?

Existe-t-il une méthode de lien de fichier ou de répertoire qui serait dynamique/résiliente contre les changements de cible?

Je veux dire que si je crée un lien mklink /d test c:\test je peux changer le nom du lien après mais pas renommer/déplacer le répertoire cible sinon la connexion sera coupée et le lien doit être remplacé.

Cela pourrait être acceptable dans une structure d'arborescence de répertoires stable mais celle-ci est très en constante évolution où une sorte d'automatisation est requise.

0voto

reabow Points 129

Dans Windows, il n'existe aucune méthode de lien de fichier ou de répertoire qui soit dynamique ou résiliente aux changements de cible. Lorsque vous créez un lien symbolique ou un lien de jonction avec la commande mklink, le lien pointe vers un fichier ou un répertoire spécifique et si la cible est renommée ou déplacée, le lien sera rompu.

Si vous avez besoin d'une solution qui est plus résiliente aux changements dans le fichier ou le répertoire cible, vous pouvez envisager d'utiliser une approche différente, tel qu'un script qui met à jour dynamiquement le lien en fonction de l'emplacement actuel du fichier ou du répertoire cible :

# Définir un tableau de chemins cibles et de chemins liés
$targets = @("C:\Test1", "C:\Test2")
$links = @("C:\TestLink1", "C:\TestLink2")

# Boucle à travers les cibles et les liens
for ($i=0; $i -lt $targets.Length; $i++)
{
    # Vérifier si le fichier ou le répertoire cible existe
    if (Test-Path $targets[$i])
    {
        # Supprimer le lien s'il existe déjà
        if (Test-Path $links[$i])
        {
            Remove-Item $links[$i] -Force
        }

        # Créer le lien
        New-Item -ItemType SymbolicLink -Path $links[$i] -Value $targets[$i]
    }
    else
    {
        Write-Output "Le fichier ou le répertoire cible n'existe pas."
    }
}

Dans ce script, vous pouvez spécifier autant de chemins cibles et de chemins liés que vous le souhaitez dans les tableaux $targets et $links, respectivement. Le script parcourra ensuite ces tableaux et créera un lien symbolique pour chaque paire de chemins cibles et liés.

0voto

harrymc Points 394411

À mon avis, il n'existe aucun système de fichiers capable de suivre le fichier cible (ou le dossier) d'un lien symbolique lorsqu'il est déplacé. Déplacer la cible invalide toujours le lien.

Certains systèmes d'archivage peuvent suivre les fichiers lorsqu'ils sont déplacés automatiquement entre les supports de stockage, mais cela ne s'applique pas ici.

Ma suggestion serait d'adopter un autre système parallèle pour trouver vos fichiers lorsqu'ils sont déplacés entre des dossiers, indépendamment de leur emplacement actuel.

Une méthode très basique serait d'utiliser des meta-tags de l'Explorateur Windows, en plus de votre structure de dossiers. Vous pouvez utiliser des balises standard connues telles que Auteur, Album ou Artiste, mais vous pouvez également créer vos propres balises. Vous pouvez ensuite utiliser le champ de recherche dans l'Explorateur pour trouver vos fichiers. Notez que ces balises ne peuvent être utilisées que dans les disques NTFS et seront perdues si elles sont copiées vers, par exemple, FAT32.

Pour plus d'informations, consultez par exemple l'article Comment ajouter et utiliser des balises dans Windows 10?

Il existe des produits de catalogage de fichiers plus sophistiqués, tels que Windows Media Player et sa bibliothèque multimédia, mais je ne peux recommander aucun en connaissance de cause.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X