25Aug
Hvis du har et stort antal mapper oprettet til dit arbejde og skal bruge den samme scriptfil i alle dem i løbet af arbejdsdagen, hvad er den nemmeste måde at opnå det ud over en masse kopiering og indsætning? Dagens SuperUser Q & A-indlæg har nogle nyttige svar og råd til en frustreret læser.
Dagens Spørgsmål &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.
Skærmbillede høflighed af csaveanu( Flickr).
Spørgsmål
SuperUser læser Elliot søger den bedste måde at få den samme fil til at ligge i flere mapper samtidig:
Jeg har 50 + mapper, der hver indeholder en stor mængde data, der skal behandles. Alle af dem behandles ved hjælp af den samme nøjagtige kode ved hjælp af os.path.dirname( os.path.realpath( file)) for at få den mappe, hvor python scriptet er placeret, så der ikke er nogen manuel redigering, som brugeren behøver, de skal bare dobbeltklikke.
Jeg skal bruge scriptet til at vises som om det er i hver mappe, mens jeg faktisk er på ét sted, så jeg kan redigere det en gang, så når den køres fra nogen af disse steder, har mappebanen ret. Alternativet er redigering af mesteren og derefter indsættes det en mappe ad gangen gennem alle 50 + mapper hver gang jeg opdaterer koden, hvilket er meget kedeligt og fejlagtigt. På Linux kunne jeg sætte det op med et symbolsk link, men jeg kan ikke finde ud af en måde at gøre dette på med Windows.
Alternativt ville en måde at indsætte filen i alle målmapper på én gang, i stedet for en ad gangen, opnå det samme mål.
Er der en måde at gøre dette i stedet for at kopiere og indsætte scriptfilen en mappe ad gangen?
Svaret
SuperUser bidragyder gronostaj har svaret for os:
Du har brug for en symbolsk link eller en hard link .
Symboliske Links ( eller Symlinks for kort) svarer meget til genveje: Der er en faktisk fil og flere referencer( Symlinks ) til den. De har endda den lille pil på ikonerne. I modsætning til genveje kan Symlinks have en udvidelse.
Hard Links binder en fil på en harddisk til en placering i katalogtræet. Hver fil har mindst en Hard Link , ellers ville den ikke findes i nogen mappe. Hvis en fil har flere Hard Links , kan den oprindelige ikke skelnes fra de andre, og filen eksisterer fysisk på kun ét sted.
Begge har deres begrænsninger:
- Nogle software spiller ikke pænt med Symlinks .
- Sletning af den oprindelige fil efterlader alle dens Symlinks brudte.
- Du kan ikke Hard Link mapper( men du kan oprette en Directory Junction, hvis en Symlink ikke er nok).
- Oprettelse af tværsnit Hard Links er umuligt.
Symlinks er normalt nok.
For at oprette en symlink eller en hard forbindelse:
1. Start en privilegeret kommandolinje: Tryk på Windows-nøgle , skriv cmd , og tryk derefter på Ctrl + Shift + Enter .
2. Udgiv mklink-kommandoen:
- mklink linknavn link_target til en fil Symlink
- mklink / d linknavn link_target til en mappe Symlink
- mklink / h linknavn link_target til en fil Hard Link
- mklink / j linknavn link_target for en Directory Junction
Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.