#!/usr/bin/perl -w use strict; use File::Spec (); use File::Find (); my $d = shift || '.'; File::Find::finddepth({wanted => sub { return unless -l; my $rl = readlink $_; print $_,'... '; unlink $_ or print 'error: unlink // ',$!,$/, return; symlink File::Spec->abs2rel($rl,$d), $_ or print 'error: symlink // ',$!,$/, return; print 'OK',$/; }, no_chdir => 1}, $d); #### #!/usr/bin/perl -w use strict; use File::Spec; my $src = shift or die 'ERROR: source not specified!', $/; my $dest = shift || '.'; chdir $dest or die qq{ouch, cannot chdir to '$dest': $!$/}; $src = File::Spec->abs2rel( $src, $dest ) ; $src =~ m|/([^/]+)$|; symlink $src, $1 or die qq{cannot create symlink: $!$/};