perl - 符号链接函数创建死链接
问题描述
use strict;
use warnings;
print "Enter link name\n";
chomp(my $link = <STDIN>);
my $link1;
$link1 = readlink '/home/test/abc_test/xyz';
symlink("$link1", "/home/test/test_scripts/$link");
/home/test/abc_test/xyz 指向如下目录:
cd /home/test/abc_test
ls -lrt
xyz -> dir
例如$link
,我从用户那里获取符号链接名称的值"abc"
。
在上面的脚本中,我试图在/home/test/test_scripts
路径中创建一个符号链接,该符号链接应该指向xyz
所指向的目录。我想要创建的最终结果/home/test/test_scripts
是
abc -> dir
上面的代码产生了相同的结果,但在路径中创建了一个死链接。
有人可以让我知道我做错了什么吗?
解决方案
问题是readlink
它只返回目录名称,dir
而不是完整路径dir
。
我假设您不在包含dir
. 在这种情况下,您需要提供symlink的两个参数的完整路径:
use strict;
use warnings;
my $link = 'abc';
my $link1 = readlink '/home/test/abc_test/xyz';
my $x = symlink "/home/test/abc_test/$link1", "/home/test/test_scripts/$link";
print "$x\n";
我还展示了您可以检查 的返回值symlink
以查看它是否成功 (1) 或不成功 (0)。
推荐阅读
- mongodb - 在MongoDB中计算每5秒的移动平均值
- python - 开始处理异步任务,同时将它们添加到事件循环中
- python - pySerial 和 Arduino 通信
- github - GitHub 中的图像不适用于自述文件
- jquery - jquery:计算字符数,对某些标签进行不同的计数
- html - Chrome 将空格添加到
使用时的标记
- selenium - selenium c#等待使用元素名称而不是定位器(By.Id)
- python - 如何对数组进行批量计算
- reactjs - 打开一个
通过单击在另一个组件中呈现的元素 - asp.net-core - .NET Core 2.1 MVC 身份授权 - 不同部分的不同用户角色