Você pode criar um arquivo tar contendo apenas os links simbólicos. Assumindo utilitários GNU (Linux ou Cygwin não embarcados):
cd /some/dir
tar cf symlinks.tar --no-recursion .
find -type l -print0 | xargs -0 tar rf symlinks.tar
Outra abordagem é gerar um script de shell que recriará os links simbólicos. Aqui está uma abordagem Perl (enquanto isso é possível com apenas utilitários POSIX, é difícil lidar com caracteres especiais corretamente).
use File::Find;
sub wanted {
if (-L $_) {
$link_name = $_;
$target = readlink($_);
die $! if !defined $target;
# protect single quotes from shell expansion
$link_name =~ s/\x27/\x27\\x27\x27/;
$target =~ s/\x27/\x27\\x27\x27/;
print "ln -s -- \x27$target\x27 \x27$link_name\x27\n";
}
}
find({wanted => \&wanted, no_chdir => 1}, ".")
Não remova os links simbólicos. Exclua-os da cópia ou crie uma cópia sem symlink da árvore de diretórios, conforme ilustrado em minha resposta à sua outra pergunta .