首页 > 解决方案 > Perl chdir 以 glob 模式失败

问题描述

我正在尝试在我的 perl 脚本中执行 cd 。我正在使用以下命令:

chdir "/home/test/test1/test2/perl*";

perl*值实际上是perl_0122_2044,但这个值可能会有所不同。

上面的chdir命令cd对路径没有作用。难道我做错了什么?

标签: perldirectoryglobchdir

解决方案


chdir不接受*参数中的和其他扩展字符。使用glob或类似的东西来提取单个目录,然后chdir到那个。例如,这会将目录更改为/home/test/test1/test2/perl*它找到的第一个目录:

$dir = (glob "/home/test/test1/test2/perl*")[0];
# only change dir if any dir was found: 
if (-d $dir) {
    # fail if cannot change dir (or, even better, use autodie):
    chdir $dir or die "Could not change to $dir: $!";
}

推荐阅读