for f in $(find -type l);do cp --remove-destination $(readlink $f) $f;done;
- Controlla i collegamenti simbolici nella directory corrente e nelle sottodirectory find -type l
- Ottieni il percorso del file collegato readlink $f
- Rimuovi il collegamento simbolico e copia il file cp --remove-destination $(readlink $f) $f
 Non esiste un singolo comando per convertire un collegamento simbolico in un file normale. Il modo più diretto è usare readlink per trovare il file a cui punta un collegamento simbolico, quindi copiare quel file sul collegamento simbolico:
cp --remove-destination `readlink bar.pdf` bar.pdf
 Ovviamente, se bar.pdf è, infatti, un file normale per cominciare, quindi questo ostruirà il file. Sarebbe quindi consigliabile un controllo di integrità.
Solo un rimaneggiamento delle risposte di altri, ma aggiungendo il "controllo di integrità" per garantire che il collegamento passato sia in realtà un collegamento simbolico:
removelink() {
  [ -L "$1" ] && cp --remove-destination "$(readlink "$1")" "$1"
}
Ciò significa che se il file è un collegamento simbolico, esegui il comando di copia.