Come modificare i collegamenti simbolici in OS X?

3

Ho seguito scrupolosamente e creato symlnks per un'intera serie di file nel mio sistema. Non potevo usare alias perché non potevano essere copiati con RSync, e anche alcune app che uso per accedere al mio sistema di casa da remoto su iOS, non potevano gestire gli alias ma funzionavano bene con i collegamenti simbolici.

Ora però dovevo cambiare alcuni dischi rigidi e i miei file originali ora si trovano in una nuova posizione. Questo ovviamente significa che tutti i miei collegamenti simbolici si sono interrotti.

Gli alias si comportano bene, ma come detto sopra, devo attenermi ai collegamenti simbolici. C'è un modo per modificare in massa questi link simbolici? Ho solo bisogno di cambiare il nome del disco nel percorso. La vecchia posizione era ad esempio:

/Volumes/Old Drive/path/to/file

il nuovo è:

/Volumes/New Drive/path/to/file

Sembra che ci dovrebbe essere una linea di comando praticabile per fare ciò poiché tutti richiedono lo stesso cambiamento. Ho trovato almeno un programma di utilità (Make Symlink) che afferma di consentire questo, ma sembra che abbia molti anni e sembra abbandonato. Non riuscivo nemmeno a decomprimere l'archivio .sit in cui era stato compresso.

EDIT: ho trovato questa pagina , che suggerisce che in unix comunque, noi di ln dovremmo fare il trucco, ma finora non sembra fare nulla - nemmeno emettere alcun messaggio di errore quando si punta a un link simbolico inesistente.

    
posta Jonathan van Clute 08.12.2013 - 06:33
fonte

1 risposta

4

Capito! Si scopre che ln è la risposta dopotutto, ma ho avuto un errore nel mio percorso.

Ecco una riga di comando funzionale per chiunque possa aver bisogno di modificare un link simbolico "sul posto" in futuro:

ln -f -s /path/to/new/location/of/original /path/to/location/of/broken/symlink/

Si noti che in realtà non si sta puntando tutto fino allo stesso link simbolico, ma alla directory che contiene il link simbolico non funzionante. Ciò presuppone che il nome atteso del collegamento simbolico sia identico al nome originale dell'elemento collegato.

Questo è ovviamente per correggere un singolo link, ma da qui posso immaginare che non sarebbe eccessivamente difficile scrivere una soluzione che applichi qualcosa di simile in modo ricorsivo.

    
risposta data 08.12.2013 - 07:36
fonte

Leggi altre domande sui tag