GNU/Linux >> Tutoriels Linux >  >> Linux

Comment déplacer un lien symbolique relatif ?

Vous pouvez transformer des chemins relatifs en chemins complets en utilisant readlink -f foo . Donc, vous feriez quelque chose comme :

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

MODIFIER :

J'ai remarqué que vous souhaitiez garder les chemins relatifs. Dans ce cas, après avoir déplacé le lien, vous pouvez utiliser symlinks -c pour reconvertir les chemins absolus en chemins relatifs.


Ceci est un perl solution qui préserve les chemins relatifs :

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. Comment compresser un lien symbolique ?

  2. Comment créer un lien vers un répertoire

  3. Comment récupérer après avoir supprimé le lien symbolique libc.so.6 ?

  4. Comment supprimer un lien symbolique vers un répertoire ?

  5. Comment copier des liens symboliques ?

Comment créer des liens symboliques sous Linux

Comment supprimer (supprimer) des liens symboliques sous Linux

Comment créer un lien symbolique sous Linux à l'aide de la commande Ln

Linux ln - Comment créer un lien symbolique sous Linux [Exemple de commande Bash]

Comment déplacer un grand nombre de fichiers sous Linux

Qu'est-ce que les liens symboliques sous Linux ? Comment créer des liens symboliques ?