如何在保留所有符号链接属性(如所有者和权限)的同时复制Perl程序中的符号链接(而不是它指向的文件)?
在Perl中,您可以使用该readlink()
函数来查找符号链接的目标.
您还可以使用该lstat()
函数来读取符号链接的权限(相反stat()
,它将读取符号链接指向的文件的详细信息).
实际上,如果没有额外的帮助,就无法在新的符号链接上设置所有权,因为Perl不会公开lchown()
系统调用.为此,您可以使用Lchown
CPAN中的Perl 模块.
假设有足够的权限(nb:未经检查的代码)
use Lchown; my $old_link = 'path to the symlink'; my $new_link = 'path to the copy'; my $dst = readlink($old_link); my @stat = lstat($old_link); symlink $dst, $new_link; lchown $stat[4], $stat[5], $new_link; # set UID and GID from the lstat() results
您无需担心符号链接上的权限 - 它们始终显示为 -rwxrwxrwx