当前位置:  开发笔记 > 编程语言 > 正文

如何在Perl中复制符号链接?

如何解决《如何在Perl中复制符号链接?》经验,为你挑选了1个好方法。

如何在保留所有符号链接属性(如所有者和权限)的同时复制Perl程序中的符号链接(而不是它指向的文件)?



1> Alnitak..:

在Perl中,您可以使用该readlink()函数来查找符号链接的目标.

您还可以使用该lstat()函数来读取符号链接的权限(相反stat(),它将读取符号链接指向的文件的详细信息).

实际上,如果没有额外的帮助,就无法在新的符号链接上设置所有权,因为Perl不会公开lchown()系统调用.为此,您可以使用LchownCPAN中的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

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有