Forum Informatica Libera

Versione completa: (RISOLTO) Copiare la destinazione dei symlinks
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Pagine: 1 2
Ciao a tutti.
Ho una cartella con dei symlinks che puntano a delle immagini presenti in altre cartelle.
Qualcuno conosce un metodo pratico per copiare la destinazione dei symlinks (e non i collegamenti symlinks) in un'altra cartella ?
L'unico modo alternativo sarebbe di andare fisicamente cartella per cartella a prelevare le destinazioni originale e sarebbe piuttosto stressante  0063
Ciao
Francesco bat
Clicca sul symlinks con il mouse dx, proprietà
Si questo lo so, ma il problema è che i files originali sono allocati tutti in cartelle differenti e l'operazione potrebbe essere possibile solo con un file alla volta.
Comunque cercando in giro non mi sembra aver trovato una soluzione pratica.
Ciao
Francesco bat
Faccio fatica a capire cosa vuoi fare, ma per copiare potresti usare " cp " e poi ricreare i symlinks?
No, volevo copiare i filers reali dai symlinks.
Cioè, per fare un esempio, il symlink collega al file 01.jpg, io voglio copiare direttamente lo 01.jpg e non il symlink ma farlo direttamente dalla cartella dei symlinks.
La questione è che la cartella che contiene i symlinks, i symlinks sono collegati a file tutti diversi e in destinazioni diverse, quindi per questo è una cosa piuttosto ostica da fare manualmente uno alla volta e volevo sapere se esistesse un metodo per copiare o meglio convertire i symlinks nei files reali in un'altra cartella senza doverli andare a prendere uno alla volta nelle cartelle originali.
Spero di essere stato chiaro  00005

Ciao
Francesco bat
Devi usare
Codice:
readlink
readlink ti dirà in formato relativo dove punta il symlink

esempio
https://serverfault.com/a/766599
Mettiamo che il file1 sia indicato in proprietà del symlinks in "collegamento a /home/francesco/immagini/estate/file1.jpg". Apri un terminale e digiti
cp /home/francesco/immagini/estate/file1.jpg(qui c'è uno spazio) /home/francesco/newfolder/file1.jpg
Puoi per comodità copiare la source direttamente da "proprietà" in modo da fare tutto dalla cartella dove tieni i symlinks, quindi senza doverti spostare materialmente nelle cartelle dove sono gli originali. Due note, i symlink probabilmente non funzioneranno più, la source è stata spostata. Volendo nella destinazione puoi anche rinominare il file.
Grazie per le risposte.
Allora procediamo con ordine:

Citazione:Devi usare
Codice:
readlink
readlink ti dirà in formato relativo dove punta il symlink

esempio
https://serverfault.com/a/766599



htUn comando molto interessante che stavo cercando, ma purtroppo facendo la prova con un file ho ottenuto questo:


Codice:
$ cp `readlink /home/francesco/Immagini/icewm/agua.jpg "/home/francesco/Immagini/sfondi/sistemi operativi/icewm/"
>

Il terminale in pausa ho dovuto interromperlo con CTRL+C

Citazione:Mettiamo che il file1 sia indicato in proprietà del symlinks in "collegamento a /home/francesco/immagini/estate/file1.jpg". Apri un terminale e digiti
cp /home/francesco/immagini/estate/file1.jpg(qui c'è uno spazio) /home/francesco/newfolder/file1.jpg
Puoi per comodità copiare la source direttamente da "proprietà" in modo da fare tutto dalla cartella dove tieni i symlinks, quindi senza doverti spostare materialmente nelle cartelle dove sono gli originali. Due note, i symlink probabilmente non funzioneranno più, la source è stata spostata. Volendo nella destinazione puoi anche rinominare il file.

Infatti, questa sembra l'unica soluzione percorribile, solo che i files da copiare sono 62 e quindi per questo speravo di trovare qualcosa di più pratico per rispolvere tutto più velocemente  005
Ciao
Francesco bat
Mettiamo 
Puoi copiare i files/dirs utilizzando rsync.  In questo modo puoi usare il flag -L, che trasforma i symlink nei files corrispondenti (di default mantiene i symlink come tali). Maggiori info con "man rsync":

Codice:
--copy-links, -L         transform symlink into referent file/dir

Ciao, Mauro
(01/09/2022, 07:48)footstep11 Ha scritto: [ -> ]Puoi copiare i files/dirs utilizzando rsync.  In questo modo puoi usare il flag -L, che trasforma i symlink nei files corrispondenti (di default mantiene i symlink come tali). Maggiori info con "man rsync":

Codice:
--copy-links, -L         transform symlink into referent file/dir

Ciao, Mauro

Siii, è così !
Sei un mito.  000016
Non sapevo che si poteva fare con rsync.Ora devo caire come inserire tutti i files insieme nel terminale e fare tutto in unica operazione.  000018
Ciao
Francesco bat
Pagine: 1 2