加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:47:30 所属栏目:大数据 来源:网络整理
导读:如何在保留所有符号链接属性(如所有者和权限)的同时复制Perl程序中的符号链接(而不是它指向的文件)? 解决方法 在Perl中,您可以使用readlink()函数来查找符号链接的目标. 您还可以使用lstat()函数来读取符号链接的权限(而不是stat(),它将读取符号链接指向的
如何在保留所有符号链接属性(如所有者和权限)的同时复制Perl程序中的符号链接(而不是它指向的文件)?

解决方法

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

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

实际上,如果没有额外的帮助,就无法在新的符号链接上设置所有权,因为Perl不公开lchown()系统调用.为此,您可以使用CPAN的Perl Lchown模块.

假设有足够的权限(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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读