Come creare un collegamento a un altro collegamento?


9

Quando si tenta di creare un collegamento a un altro collegamento, Windows XP assegna la destinazione del collegamento originale al nuovo collegamento. Questo succede anche quando inserisco manualmente il percorso target e mi rimane una copia del collegamento originale. Questo non è quello che voglio.

Come può fare in modo che un .lnkfile punti .lnkdirettamente a un altro file? Questa forma di doppia indiretta sarebbe molto utile per gestire i collegamenti ai file che si spostano frequentemente.


In Windows 7 funziona e basta ... Non è lo stesso in XP?
soandos,

@soandos: crea una copia del collegamento anziché creare un collegamento a un collegamento.
user541686,

@soandos Se si esegue un collegamento a un collegamento, il nuovo collegamento farà riferimento al percorso del primo collegamento, non al percorso del file di collegamento stesso. Questo è il comportamento predefinito in Windows XP e 7.
iglvzx,

Risposte:


4

Capisco perfettamente l'utilità del collegamento ai collegamenti e ho anche cercato una soluzione semplice. Il migliore che ho ideato è semplicemente usare Hardlink, che puntano al file shortcut.lnk. Ho testato i collegamenti simbolici (le giunzioni sono solo per le cartelle, non per i file, quindi non sono state testate) e NON funzionano (sono fondamentalmente file rotti quando vengono creati, che non si aprono).

Gli hardlink presentano numerosi vantaggi e svantaggi. Lo svantaggio principale è che è quasi impossibile eseguire facilmente il backup (sono necessari software o script di terze parti per eseguire il backup su un'altra immersione o persino su un'altra posizione sulla stessa unità). Il vantaggio principale è che si aggiornano automaticamente quando si modifica il file originale, quindi la modifica di 1 file di scelta rapida (nuovo percorso / icona) modifica anche tutti i collegamenti fisici associati [i nomi per il collegamento fisico, tuttavia, sono univoci, quindi la modifica di un nome file non cambia il nome del collegamento fisico e viceversa]. Un'altra caratteristica che è sia un vantaggio che uno svantaggio dei collegamenti fisici è che la modifica dell'icona / percorso per il collegamento fisico (modifica dei dati del collegamento fisico) cambia ANCHE L'ORIGINALE. Ciò NON include "l'eliminazione del collegamento stesso" (il collegamento può essere eliminato come qualsiasi altro file; senza eliminare il file originale stesso). Questo è vantaggioso perché mantiene sincronizzati tutti i collegamenti associati, ma è svantaggioso nei casi in cui il collegamento fisico è archiviato in una posizione vulnerabile e i suoi dati vengono modificati in modo dannoso o viene commesso un errore dell'utente nella modifica dei dati di un singolo collegamento. Questa modifica verrà applicata a tutti i partner collegati, incluso l'originale. Francamente questo comportamento è generalmente utile, tranne nei casi in cui si desidera un "riferimento di origine stabile" (modifica a 1 via) Questa modifica verrà applicata a tutti i partner collegati, incluso l'originale. Francamente questo comportamento è generalmente utile, tranne nei casi in cui si desidera un "riferimento di origine stabile" (modifica a 1 via) Questa modifica verrà applicata a tutti i partner collegati, incluso l'originale. Francamente questo comportamento è generalmente utile, tranne nei casi in cui si desidera un "riferimento di origine stabile" (modifica a 1 via)

Ho provato a copiare singoli hardlink e cartelle contenenti hardlink, in Windows Explorer, e il risultato crea solo scorciatoie dissociate ai dati originali (non sono più associati hardlink e quindi non cambia con le modifiche al link originale). Trovo questa mancanza di una semplice copia estremamente fastidiosa e il motivo principale per cui sarei riluttante a usarli ampiamente, ma, se ne hai solo alcuni per uno scopo specifico (come sincronizzare i collegamenti da una directory stabile, sul desktop / sulla barra delle applicazioni / startmenu) potrebbero comunque essere una buona soluzione (anche se, in realtà, non sono portabili su altri sistemi, senza scrivere uno script per automatizzare la loro creazione di directory). FANNO, tuttavia, spostarsi senza interruzioni (è possibile spostarli ovunque nel file system, una volta creati. Non è possibile "copiarli").

Per creare un collegamento fisico, basta aprire un prompt dei comandi con privilegi elevati (.cmd aperto a system32 o eseguire .cmd come amministratore) e digitare:

mklink /H [path and name of Hardlink] [location of original file]

Esempio:

mklink /H C:\users\you\desktop\hardlink.lnk C:\users\you\location\shortcut.lnk

È utile designare il collegamento fisico con il tipo di file a cui si collega (come, qui, .lnk, ma per i documenti di blocco note hardlink.txt o simili), perché è fondamentalmente un mirroring del file originale e Windows Explorer lo considera come se erano gli originali (di nuovo, un comportamento utile). Dovrei anche dichiarare direttamente che sono creati SOLO tramite prompt dei comandi (o software di terze parti che fornisce shellExtension o gui per il comando). Inoltre, non sono una ' copia speculare"dell'originale, possono mostrare le dimensioni del file dell'oggetto originale, ma occupano intrinsecamente 0 byte di spazio sull'unità; sono in realtà riferimenti memorizzati nella MFT dell'unità (che è anche la ragione per cui non possono essere creati tra 2 diverse partizioni [che è un'altra caratteristica di cui vale la pena menzionare; ma che è facilmente superabile con una combinazione intelligente di scorciatoie, giunzioni , symlink e hardlink usati insieme all'unisono])

Francamente, credo che questo sia esattamente quello che stai cercando ed è una funzione molto utile. Se riesci a scrivere bene, sono sicuro che non è difficile scrivere un programma che crei semplicemente una directory hardlink come desideri (e la consideri come una "soluzione di backup" o "soluzione di portabilità" per altri sistemi). Potresti anche essere in grado di trovare software di terze parti per semplificare tutte queste attività e superare l'inadeguatezza intrinseca del lavoro con i collegamenti fisici.


Era totalmente quella opzione. (funziona ancora in Windows Server 2012). Si prega di contrassegnare come risposta poiché ha risposto esattamente alla domanda. Lo uso per "versionning" un software condiviso attraverso la rete e lanciato da 15 utenti. Quando ho una nuova versione, cambio semplicemente il link "primo" per puntare a quella nuova versione, e l'hardLink sta rispettando la modifica. Il collegamento fisico è il collegamento finale che risiede sui desktop dei miei utenti (10-15 profili utente).
Simon,

O non funziona in Windows 10 o non capisco cosa sia un hardlink. Ho seguito esattamente le indicazioni e si diceva "Hardlink creato per ..." ma quando faccio clic con il pulsante destro del mouse sul collegamento reale e visualizzo Proprietà, punta ancora al file originale, non all'altro collegamento. Ho anche corso fcdalla riga di comando e dice "nessuna differenza riscontrata"
Andrew Steitz,

2

La soluzione più semplice sarebbe quella di utilizzare i file batch .

Se Shortcut.lnksi trova in C:\Files\, la creazione di un nuovo .batfile con la seguente singola riga di codice avvierà il .lnkfile:

"C:\Files\Shortcut.lnk"

Sì, lo sapevo già (è la 'risposta' menzionata in qualsiasi altra parte di Internet quando cerchi questo), ma in realtà non risponde alla domanda ...
user541686,

C'è un motivo per cui anche il "collegamento" al .lnkfile deve essere un .lnkfile? Se questo è importante o se hai altri requisiti, modifica la tua domanda per includere questi dettagli. In questo modo otterrai una risposta migliore. :)
iglvzx,

Uhm, sì, perché è quello che ho posto nella domanda ... se i .batfile fossero sufficienti, Microsoft non avrebbe creato i .lnkfile ...
user541686,

E a proposito, i file batch non si comportano come le scorciatoie nel momento in cui fai clic con il tasto destro del mouse (o diamine, non assomigliano nemmeno alle scorciatoie anche quando le guardi ).
user541686,

Ok. Sono andato avanti e ho modificato la tua domanda per rendere più chiaro questo requisito.
iglvzx,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.