Первый аргумент для synlimk - это путь, который вы хотите указать для цели ссылки. Вы получаете /home/test/abc_test/test1
, потому что вы передаете /home/test/abc_test/test1
. Если вы хотите test1
, вам нужно передать test1
.
Если вы хотите скопировать точную цель, вы можете использовать следующее:
my $src_link = "$ENV{HOME}/tmp/abc_test/xyz";
my $dst_link = "$ENV{HOME}/tmp/test_scripts/xyz";
defined( my $target = readlink($src_link) )
or die("Can't read symlink \"$src_link\": $!\n");
symlink($target, $dst_link);
or die("Can't create symlink \"$dst_link\": $!\n");
Например , если вы начнете с
/home/test/abc_test/xyz -> test1 # Points to /home/test/abc_scripts/test1
, то приведенное выше создаст
/home/test/test_scripts/xyz -> test1 # Points to /home/test/test_scripts/test1