1

我想删除文件夹中 IP 地址为“1.1.1.1”的/tmp文件:

# ls -1 /tmp
1.1.1.1_Reboot.xml
1.1.1.1_Roll.xml
1.1.1.1_Setup.xml
1.1.1.2_Reboot.xml
1.1.1.2_Roll.xml
1.1.1.2_Setup.xml

我指的是:取消链接全局

这是我的代码:

#!/usr/bin/perl -w
use strict;

my $DIR     = "/tmp";
my $IP      = '1.1.1.1';

unlink glob $DIR."/".$IP."*";

但是,它不会删除文件。我怀疑这个glob功能,我想我没有以正确的方式使用它。

你能帮忙吗。谢谢。

更新:

如果我$IP用 IP 地址本身替换,那么它正在删除文件。

unlink glob $DIR."/"."1.1.1.1"."*";

因此,该语句似乎unlink无法评估 variable 的值$IP。我不知道它为什么会这样。我需要使它与$IP而不是它的显式值一起工作。

4

1 回答 1

0

它可能与路径有关。打印错误以获取更多信息。尝试这个:

#!/usr/bin/perl -w
use strict;

my $DIR     = "/tmp";
my $IP      = '1.1.1.1';

chdir $DIR;
my @goners  = glob $IP . "*";

foreach my $file ( @goners ) {
   print "file: $file\n";
   next unless $file =~ m!^1\.1\.1\.\d_!;
   print "file to delete: $file\n";
   unlink $file or warn "Could not unlink $file: $!";
}
于 2013-03-18T08:00:27.413 回答