我有很长的子目录列表,例如C0 / C1 / C2 ... C354。它单独包含各自的文件。我试图更改目录的所有权(而不是目录中的文件)。这就是我写的:
#!/usr/bin/perl -w
use strict;
use File::Find;
my @directories;
find sub{
print "$File::Find::name";
print "\n";
return unless -d;
next if (m/^\./);
push @directories, $File::Find::name;
}, ".";
foreach my $file (@directories){
my $cmd = qx |chown deep:deep $file|;
}
它升高到C0 / C1并停止渗透到其他文件中。我的linux文件系统是否有问题,或者Perl中的File :: Find模块存在限制。请帮忙。谢谢。
答案 0 :(得分:0)
给File :: Find :: find的函数里面没有循环,但你仍然在其中使用“next”。这将导致它在函数外部寻找一个循环,它可能会在File :: Find中找到它,从而导致不稳定的行为。 你可能想要一个“回归”而不是“下一个”。
应该有一个(运行时)警告。