GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo muevo un enlace simbólico relativo?

Puede convertir rutas relativas en rutas completas usando readlink -f foo . Así que harías algo como:

ln -s $(readlink -f $origlink) $newlink
rm $origlink

EDITAR:

Me di cuenta de que desea mantener los caminos relativos. En este caso, después de mover el enlace, puede usar symlinks -c para volver a convertir las rutas absolutas en rutas relativas.


Este es un perl solución que conserva rutas relativas:

use strictures;
use File::Copy qw(mv);
use Getopt::Long qw(GetOptions);
use Path::Class qw(file);
use autodie qw(:all GetOptions mv);

my $target;
GetOptions('target-directory=s' => \$target);
die "$0 -t target_dir symlink1 symlink2 symlink3\n" unless $target && -d $target;

for (@ARGV) {
    unless (-l $_) {
        warn "$_ is not a symlink\n";
        next;
    }
    my $newlink = file(readlink $_)->relative($target)->stringify;
    unlink $_;
    symlink $newlink, $_;
    mv $_, $target;
}

Linux
  1. ¿Rutas absolutas/canónicas/relativas?

  2. Cómo crear un enlace a un directorio

  3. ¿Cómo recuperar después de eliminar el enlace simbólico libc.so.6?

  4. ¿Cómo eliminar un enlace simbólico a un directorio?

  5. ¿Cómo puedo forzar solo rutas relativas en la salida de búsqueda?

Cómo crear enlaces simbólicos en Linux

Cómo quitar (eliminar) enlaces simbólicos en Linux

Cómo crear un enlace simbólico en Linux usando el comando Ln

Linux ln:cómo crear un enlace simbólico en Linux [Ejemplo de comando Bash]

Cómo mover una gran cantidad de archivos en Linux

¿Qué son los enlaces simbólicos en Linux? ¿Cómo crear enlaces simbólicos?