25Aug
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 til 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-leseren 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 å benytte os.path.dirname( os.path.realpath( fil)) for å få katalogen der pythonskriptet er plassert, så det er ingen manuell redigering som brukeren trenger, 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 filen inn 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 symbolsk lenke eller en hard link .
Symboliske Lenker ( eller Symlinks for kort) er ganske lik snarveier: det er en faktisk fil og flere referanser( Symlinks ) til den. De har selv den lille pilen på ikonene. Til forskjell fra snarveier kan Symlinks ha en utvidelse.
Hard Links binder en fil på en harddisk til et sted i katalogtreet. Hver fil har minst en Hard Link , ellers ville den ikke finnes i noen katalog. Hvis en fil har flere Hard Links , kan den opprinnelige ikke skille seg fra de andre, og filen eksisterer fysisk på bare ett sted.
Begge har sine begrensninger:
- Noen programvare spiller ikke pent med Symlinks .
- Slette den opprinnelige filen forlater alle sine Symlinks ødelagte.
- Du kan ikke Hard Link mapper( men du kan opprette en Directory Junction hvis en Symlink ikke er nok).
- Opprette krysspartisjon Hard Links er umulig.
Symlinks er vanligvis tilstrekkelig.
Å opprette en Symlink eller en hard Link:
1. Start en privilegert kommandolinje: Trykk Windows-nøkkel , skriv cmd , og trykk deretter Ctrl + Shift + Enter .
2. Utgitt mklink-kommandoen:
- mklink lenkeavn link_target for en fil Symlink
- mklink / d lenkeavn link_target for en mappe Symlink
- mklink / h lenkeavn link_target for en fil Hard Link
- mklink / j link_name link_target for en 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.