Hvordan lager du en enkelt fil som vises for å være i flere mapper samtidig?
Hvis du har et stort antall mapper satt opp for arbeidet ditt og trenger å bruke samme skriptfil i alle dem i løpet av arbeidsdagen, hva er den enkleste måten å oppnå det utover mye kopiering og innliming? Dagens SuperUser Q & A-innlegg har noen nyttige svar og råd for en frustrert leser.
Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.
Skjermbilde høflighet av csaveanu (Flickr).
Spørsmålet
SuperUser leser Elliot leter etter den beste måten å få samme fil til å ligge i flere mapper samtidig:
Jeg har 50 + mapper, som hver inneholder en stor mengde data som må behandles. Alle av dem behandles med samme nøyaktige kode, ved bruk av os.path.dirname (os.path.realpath (fil)) for å få katalogen der python-skriptet er plassert, så det er ingen manuell redigering som trengs av brukeren, de trenger bare å dobbeltklikke.
Jeg trenger at skriptet skal vises som om det er i hver mappe mens det faktisk er på ett sted, slik at jeg kan redigere det en gang, så når det kjøres fra noen av disse stedene, har mappebanen riktig. Alternativet er å redigere master og deretter klistre det en mappe av gangen gjennom alle 50 + mapper hver gang jeg oppdaterer koden, noe som er veldig kjedelig og feilaktig. På Linux kunne jeg sette opp dette med en symbolsk lenke, men jeg kan ikke finne ut en måte å gjøre dette på med Windows.
Alternativt kan en måte å lime inn filen i alle målkatalogene samtidig, i stedet for en om gangen, oppnå det samme målet.
Er det en måte å gjøre dette i stedet for å kopiere og lime inn skriptfilen en mappe av gangen?
Svaret
SuperUser bidragsyter gronostaj har svaret for oss:
Du trenger en Symbolisk lenke eller a Hard Link.
Symboliske lenker (eller symlinker for kort) er ganske lik snarveier: det er en faktisk fil og flere referanser (symlinker) til den. De har selv den lille pilen på ikonene. Til forskjell fra snarveier, symlinker kan ha noen utvidelse.
Hard Links bind en fil på en harddisk til et sted i katalogtreet. Hver fil har minst en Hard Link, ellers ville det ikke eksistere i noen katalog. Hvis en fil har flere Hard Links, den opprinnelige kan ikke skilles fra de andre og filen eksisterer fysisk på bare ett sted.
Begge har sine begrensninger:
- Noen programvare spiller ikke pent med symlinker.
- Slette den opprinnelige filen forlater alt symlinker gått i stykker.
- Du kan ikke Hard Link mapper (men du kan opprette en Directory Junction hvis a symlink det er ikke nok).
- Opprett tverrpartisjon Hard Links er umulig.
symlinker er vanligvis tilstrekkelig.
Å opprette en Symlink eller en Hard Link:
1. Start en privilegert kommandolinje: Trykk på Windows-nøkkel, type cmd, trykk deretter på Ctrl + Shift + Enter.
2. Utsted kommandoen mklink:
- mklink link_name link_target for en fil symlink
- mklink / d link_name link_target for en mappe symlink
- mklink / h link_name link_target for en fil Hard Link
- mklink / j link_name link_target for a Directory Junction
Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.