Pagina principala » HOWTO » Cum se face ca un singur fișier să apară în mai multe foldere în același timp?

    Cum se face ca un singur fișier să apară în mai multe foldere în același timp?

    Dacă aveți un număr mare de foldere configurate pentru munca dvs. și trebuie să utilizați același fișier de script în toate acestea în timpul zilei de lucru, atunci care este cel mai simplu mod de a realiza acest lucru dincolo de o mulțime de copiere și lipire? Postul de astăzi SuperUser Q & A are câteva răspunsuri utile și sfaturi pentru un cititor frustrat.

    Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.

    Imaginea de pe urma csaveanu (Flickr).

    Intrebarea

    Cititorul de super-utilizatori Elliot caută cea mai bună modalitate de a avea același fișier care apare în mai multe foldere în același timp:

    Am 50 de dosare, fiecare conținând o cantitate mare de date care trebuie procesate. Toate acestea sunt procesate folosind același cod exact, folosind os.path.dirname (os.path.realpath (fișier)) pentru a obține directorul în care este amplasat scriptul python, astfel încât nu este nevoie de editare manuală necesară utilizatorului, trebuie doar să faceți dublu clic.

    Am nevoie ca scriptul să apară ca și cum ar fi în fiecare dosar, de fapt, fiind într-un singur loc, astfel încât să îl pot edita o dată, atunci când este rulat din oricare dintre aceste locații, calea dosarului trebuie să fie corectă. Alternativa este editarea master-ului și apoi adăugarea lui la un singur dosar la un moment dat prin toate cele 50 de foldere de fiecare dată când actualizez codul, care este foarte obositor și predispusă la erori. Pe Linux, aș putea să fac acest lucru printr-o legătură simbolică, dar nu pot să-mi dau seama de o modalitate de a face acest lucru cu Windows.

    Alternativ, o modalitate de a lipi fișierul în toate directoarele țintă simultan, în loc de unul câte unul, ar realiza același scop.

    Există o modalitate de a face acest lucru, mai degrabă decât copierea și lipirea fișierului de script un singur folder la un moment dat?

    Răspunsul

    Utilizatorul SuperUser gronostaj are răspunsul pentru noi:

    Ai nevoie de Link simbolic sau a Hard Link.

    Link-uri simbolice (sau symlink-uri pe scurt) sunt destul de similare cu comenzile rapide: există un dosar real și mai multe referințe (symlink-uri) la ea. Ei au chiar acea săgeată mică pe icoane. Spre deosebire de comenzile rapide, symlink-uri poate avea orice extensie.

    Link-uri greu legați un fișier de pe o unitate de hard disk într-o locație din arborele de directoare. Fiecare fișier are cel puțin una Hard Link, altfel nu ar exista în nici un director. Dacă un fișier are multiple Link-uri greu, cel original nu poate fi distins de ceilalți și fișierul există fizic într-o singură locație.

    Ambele au limitările lor:

    • Unele programe software nu se joacă frumos cu symlink-uri.
    • Ștergerea fișierului original lasă toate fișierele sale symlink-uri spart.
    • Nu poți Hard Link (dar puteți crea un Junction de director dacă a symlink nu este de ajuns).
    • Crearea partiției încrucișate Link-uri greu este imposibil.

    symlink-uri sunt de obicei suficiente.

    Pentru a crea un simbolink sau o legătură tare:

    1. Lansați o linie de comandă privilegiată: Apăsați pe Windows Key, tip cmd, apoi apăsați Ctrl + Shift + Enter.

    2. Eliberați comanda mklink:

    • mklink link_name link_target pentru un fișier symlink
    • mklink / d link_name link_target pentru un dosar symlink
    • mklink / h link_name link_target pentru un fișier Hard Link
    • mklink / j link_name link_target pentru un Director Junction

    Aveți ceva de adăugat la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.