Hoe laat u een enkel bestand 'verschijnen' in meerdere mappen tegelijkertijd?
Als u een groot aantal mappen hebt ingesteld voor uw werk en ze tijdens de werkdag hetzelfde scriptbestand moeten gebruiken, wat is dan de gemakkelijkste manier om dat te bereiken dan heel veel kopiëren en plakken? De SuperUser Q & A-post van vandaag biedt enkele nuttige antwoorden en advies voor een gefrustreerde lezer.
De Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een gemeenschapsgedreven groep van Q & A-websites.
Screenshot met dank aan csaveanu (Flickr).
De vraag
SuperUser-lezer Elliot zoekt naar de beste manier om hetzelfde bestand tegelijkertijd in meerdere mappen te laten lijken:
Ik heb 50+ mappen, die elk een grote hoeveelheid gegevens bevatten die moeten worden verwerkt. Ze worden allemaal verwerkt met dezelfde exacte code, gebruikmakend van os.path.dirname (os.path.realpath (file)) om de directory te krijgen waarin het python-script zich bevindt, zodat de gebruiker geen handmatige bewerking hoeft uit te voeren, hoeven ze alleen maar te dubbelklikken.
Ik wil dat het script verschijnt alsof het in elke map staat terwijl het zich eigenlijk op slechts één plaats bevindt, zodat ik het een keer kan bewerken, en als het wordt uitgevoerd vanaf een van deze locaties, moet het mappad correct zijn. Het alternatief is het bewerken van de master en deze vervolgens één map per keer door alle 50+ mappen plakken telkens wanneer ik de code bijwerk, wat erg vervelend en foutgevoelig is. Onder Linux zou ik dit kunnen instellen met een symbolische link, maar ik kan dit niet met Windows vinden.
Als alternatief zou een manier om het bestand in alle doelmappen tegelijk in plaats van één tegelijk te plakken, hetzelfde doel bereiken.
Is er een manier om dit te doen in plaats van het scriptbestand één map per keer te kopiëren en plakken??
Het antwoord
SuperUser-bijdrager gronostaj heeft het antwoord voor ons:
Je hebt een nodig Symbolische link of a Harde link.
Symbolische koppelingen (of symlinks kort gezegd) lijken veel op snelkoppelingen: er is één daadwerkelijk bestand en meerdere verwijzingen (symlinks). Ze hebben zelfs dat kleine pijltje op de pictogrammen. In tegenstelling tot snelkoppelingen, symlinks kan elke extensie hebben.
Harde links bind een bestand op een harde schijf naar een locatie in de mappenboom. Elk bestand heeft er minimaal één Harde link, anders zou het niet in een map voorkomen. Als een bestand meerdere heeft Harde links, de originele kan niet van de andere worden onderscheiden en het bestand bestaat fysiek slechts op één locatie.
Beide hebben hun beperkingen:
- Sommige software speelt niet leuk met symlinks.
- Als u het originele bestand verwijdert, blijft alles achter symlinks gebroken.
- Jij kan niet Harde link mappen (maar u kunt een Directory Junction maken als a symlink is niet genoeg).
- Het maken van cross-partitionering Harde links is onmogelijk.
symlinks zijn meestal voldoende.
Om een Symlink of een harde link te maken:
1. Start een gepriviligeerde opdrachtregel: druk op de Windows-toets, type cmd, druk vervolgens op Ctrl + Shift + Enter.
2. Voer de opdracht mklink uit:
- mklink link_name link_target voor een bestand symlink
- mklink / d link_name link_target voor een map symlink
- mklink / h link_name link_target voor een bestand Harde link
- mklink / j link_name link_target voor a Directory Junction
Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread.