25Aug

Hur gör du att en enda fil visas "att vara i flera mappar samtidigt?

click fraud protection

Om du har ett stort antal mappar som är inställda för ditt arbete och behöver använda samma skriptfil i alla dem under arbetsdagen, vad är det enklaste sättet att uppnå det bortom mycket kopiering och klistra in? Dagens SuperUser Q & A-inlägg har några användbara svar och råd för en frustrerad läsare.

Dagens fråga &Svarssession kommer till oss med tillstånd av SuperUser-en indelning av Stack Exchange, en community-driven gruppering av Q & A-webbplatser.

Skärmdump med tillstånd av csaveanu( Flickr).

Frågan

SuperUser-läsaren Elliot letar efter det bästa sättet att få samma fil att vara i flera mappar samtidigt:

Jag har 50 + mappar, som alla innehåller en stor mängd data som behöver behandlas. Alla bearbetas med samma exakta kod, genom att använda os.path.dirname( os.path.realpath( file)) för att få katalogen där pythonskriptet finns, så det finns ingen manuell redigering som användaren behöver, de behöver bara dubbelklicka.

Jag behöver skriptet att visas som om det finns i varje mapp medan jag faktiskt är på bara en plats så att jag kan redigera den en gång, då när den körs från någon av dessa platser har mappbanan rätt. Alternativet är att redigera mästaren och sedan klistra in den en mapp i taget genom alla 50 + mappar varje gång jag uppdaterar koden, vilket är väldigt tråkigt och felaktigt. På Linux kunde jag skapa en symbolisk länk, men jag kan inte hitta ett sätt att göra det med Windows.

instagram viewer

Alternativt kan ett sätt att klistra in filen i alla målkataloger samtidigt, istället för en åt gången, uppnå samma mål.

Finns det ett sätt att göra detta istället för att kopiera och klistra in skriptfilen en mapp i taget?

Svaret

SuperUser-bidragsgivaren gronostaj har svaret för oss:

Du behöver en symbolisk länk eller en hård länk .

Symboliska länkar ( eller Symlinks för korta) liknar snarlika genvägar: det finns en faktisk fil och flera referenser( Symlinks ) till den. De har till och med den lilla pilen på ikonerna. Till skillnad från genvägar kan Symlinks ha någon förlängning.

Hårda länkar binder en fil på en hårddisk till en plats i katalogträdet. Varje fil har minst en Hard Link , annars skulle det inte finnas någon katalog. Om en fil har flera hårda länkar kan den ursprungliga inte särskiljas från de andra och filen finns fysiskt på bara en plats.

Båda har sina begränsningar:

  • Vissa program spelar inte bra med Symlinks .
  • Att radera originalfilen lämnar alla dess Symlinks brutna.
  • Du kan inte mappar Hard Link ( men du kan skapa en Directory Junction om en Symlink inte räcker).
  • Skapa cross-partition Hårda länkar är omöjligt.

Symlinks är vanligtvis tillräckliga.

För att skapa en länk eller en hård länk:

1. Starta en privilegierad kommandorad: Tryck på Windows-tangenten , skriv cmd och tryck sedan på Ctrl + Skift + Ange .

2. Utfärda mklink-kommandot:

  • mklink länknamn link_target för en fil Symlink
  • mklink / d länknamn link_target för en mapp
  • Symlink
  • mklink / h länknamn link_target för en fil Hård länk
  • mklink / j länknamn link_target för Directory Junction

Har något att lägga till förklaringen? Ljud av i kommentarerna. Vill du läsa mer svar från andra tech-savvy Stack Exchange-användare? Kolla in hela diskussionsgängan här.