25Aug

Comment faire apparaître un seul fichier «apparaître» dans plusieurs dossiers en même temps?

Si vous avez un nombre élevé de dossiers configurés pour votre travail et que vous avez besoin d'utiliser le même fichier de script dans chacun d'entre eux pendant la journée de travail, quel est le moyen le plus simple d'effectuer ces opérations de copie et de collage? Le SuperUser Q & A d'aujourd'hui a quelques réponses utiles et des conseils pour un lecteur frustré.

Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.

Image reproduite avec l'aimable autorisation de csaveanu( Flickr).

La question Lecteur

SuperUser Elliot recherche le meilleur moyen de faire apparaître le même fichier dans plusieurs dossiers en même temps:

J'ai plus de 50 dossiers, chacun contenant une grande quantité de données à traiter. Tous sont traités en utilisant le même code exact, en utilisant os.path.dirname( os.path.realpath( fichier)) pour obtenir le répertoire dans lequel se trouve le script python afin qu'il n'y ait pas de modification manuelle requise par l'utilisateur, ils ont juste besoin de double-cliquer.

J'ai besoin que le script apparaisse comme s'il se trouvait dans chaque dossier alors qu'il se trouvait dans un seul endroit pour que je puisse l'éditer une fois, puis quand il est exécuté depuis n'importe lequel de ces emplacements, le chemin du dossier est correct. L'alternative consiste à éditer le master, puis à le coller un dossier à la fois dans les 50 dossiers et plus chaque fois que je mets à jour le code, ce qui est très fastidieux et sujet aux erreurs. Sur Linux, je pourrais mettre cela en place avec un lien symbolique, mais je ne peux pas trouver un moyen de le faire avec Windows.

Sinon, un moyen de coller le fichier dans tous les répertoires cibles en même temps, au lieu d'un à la fois, permettrait d'atteindre le même objectif.

Y at-il un moyen de faire cela plutôt que de copier et coller le fichier de script un dossier à la fois?

La réponse

SuperUser contributeur gronostaj a la réponse pour nous:

Vous avez besoin d'un lien symbolique ou d'un lien .

Liens symboliques ( ou Symlinks pour faire court) sont assez similaires aux raccourcis: il y a un fichier réel et plusieurs références( Symlinks ).Ils ont même cette petite flèche sur les icônes. Contrairement aux raccourcis, Symlinks peut avoir n'importe quelle extension.

Liens lient un fichier sur un disque dur à un emplacement dans l'arborescence. Chaque fichier a au moins un Hard Link , sinon il n'existe dans aucun répertoire. Si un fichier contient plusieurs Hard Links , le fichier original ne peut pas être distingué des autres et le fichier existe physiquement dans un seul emplacement.

Les deux ont leurs limites:

  • Certains logiciels ne joue pas bien avec Symlinks .
  • La suppression du fichier d'origine entraîne la rupture de tous ses liens Symlinks .
  • Vous ne pouvez pas Hard Link dossiers( mais vous pouvez créer une jonction de répertoire si un Symlink n'est pas suffisant).
  • Création de liens inter-partitions inter-partitions est impossible.

Symlinks sont généralement suffisants.

Pour créer un lien symbolique ou un lien physique:

1. Lancez une ligne de commande privilégiée: Appuyez sur la touche Windows , tapez cmd , puis appuyez sur Ctrl + Maj + Entrée .

2. Exécutez la commande mklink:

  • mklink nom_lien link_target pour un fichier Symlink
  • mklink / d nom_lien link_target pour un dossier Symlink
  • mklink / h nom_lien link_target pour un fichier Lien fixe
  • mklink / j nom_lien link_target pour un Directory Junction

Avez-vous quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.