25Aug

Come si fa ad apparire un singolo file in più cartelle contemporaneamente?

Se hai un numero elevato di cartelle configurate per il tuo lavoro e hai bisogno di utilizzare lo stesso file di script in tutte loro durante la giornata lavorativa, qual è il modo più semplice per farlo oltre a un sacco di operazioni di copia e incolla? Il post di Q & A di SuperUser di oggi ha alcune utili risposte e consigli per un lettore frustrato.

Today's Question &La sessione di risposta ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di Q & A basato su community.

Screenshot per gentile concessione di csaveanu( Flickr).

La domanda

Lettore SuperUser Elliot sta cercando il modo migliore per avere lo stesso file in più cartelle contemporaneamente:

Ho più di 50 cartelle, ognuna delle quali contiene una grande quantità di dati che devono essere elaborati. Tutti sono elaborati utilizzando lo stesso codice esatto, utilizzando os.path.dirname( os.path.realpath( file)) per ottenere la directory in cui si trova lo script python in modo che l'utente non abbia bisogno di modifiche manuali, hanno solo bisogno di fare doppio clic.

Ho bisogno che lo script appaia come se fosse in ogni cartella mentre in realtà si trova in un'unica posizione in modo che io possa modificarlo una volta, quindi quando viene eseguito da una di queste posizioni il percorso della cartella sia corretto. L'alternativa è modificare il master e incollarlo una cartella alla volta attraverso tutte le 50+ cartelle ogni volta che aggiorno il codice, che è molto noioso e soggetto a errori. Su Linux, potrei impostare questo con un collegamento simbolico, ma non riesco a capire un modo per farlo con Windows.

In alternativa, un modo per incollare il file in tutte le directory di destinazione contemporaneamente, anziché uno alla volta, raggiungerebbe lo stesso obiettivo.

C'è un modo per fare questo invece di copiare e incollare il file di script una cartella alla volta?

La risposta

Il contributore SuperUser gronostaj ha la risposta per noi:

È necessario un Link simbolico o un Hard Link .

Link simbolici ( o Symlink in breve) sono abbastanza simili alle scorciatoie: c'è un file effettivo e più riferimenti( Symlink ) ad esso. Hanno anche quella piccola freccia sulle icone. A differenza delle scorciatoie, Symlink può avere qualsiasi estensione.

Collegamenti duri collega un file su un disco rigido a un percorso nella struttura delle directory. Ogni file ha almeno un Hard Link , altrimenti non esisterebbe in nessuna directory. Se un file ha più Collegamenti duri , l'originale non può essere distinto dagli altri e il file esiste fisicamente in un'unica posizione.

Entrambi hanno i loro limiti:

  • Alcuni software non funzionano bene con Symlink .
  • L'eliminazione del file originale lascia tutti i suoi Symlink non funzionanti.
  • Non è possibile Hard Link cartelle( ma è possibile creare una giunzione di directory se un Symlink non è sufficiente).
  • Creazione di collegamenti incrociati Collegamenti duri è impossibile.

Symlink sono in genere sufficienti.

Per creare un collegamento simbolico o un collegamento fisico:

1. Avviare una riga di comando privilegiata: premere chiave di Windows , digitare cmd , quindi premere Ctrl + Maiusc + Invio .

2. Emettere il comando mklink:

  • mklink link_name link_target per un file Symlink
  • mklink / d link_name link_target per una cartella Symlink
  • mklink / h link_name link_target per un file hard link
  • mklink / j link_name link_target per un Giunzione di directory

Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.