Hur skapar du en enda fil som visas i flera mappar samtidigt?
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-tjänst har några användbara svar och råd för en frustrerad läsare.
Dagens Question & Answer-session 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 av dem bearbetas med samma exakta kod, med användning av os.path.dirname (os.path.realpath (fil)) för att få katalogen där python-skriptet 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.
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-bidragare gronostaj har svaret för oss:
Du behöver en Symbolisk länk eller a 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 det. De har till och med den lilla pilen på ikonerna. Till skillnad från genvägar, symlinks kan ha någon förlängning.
Hårda länkar binda en fil på en hårddisk till en plats i katalogträdet. Varje fil har minst en Hård länk, annars skulle det inte finnas någon katalog. Om en fil har flera Hårda länkar, den ursprungliga kan 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.
- Om du tar bort originalfilen lämnar du allt symlinks bruten.
- Du kan inte Hård länk mappar (men du kan skapa en Directory Junction om a symlink är inte tillräckligt).
- Skapa cross-partition Hårda länkar är omöjligt.
symlinks är vanligtvis tillräckliga.
Skapa en symlink eller en hård länk:
1. Starta en privilegierad kommandorad: Tryck på Windows-nyckel, typ cmd, tryck sedan på Ctrl + Skift + Enter.
2. Utfärda kommandot mklink:
- 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 a Directory Junction
Har du 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.