1

如果文件名具有像“@”这样的字符,perl 的 stat() 似乎不起作用。

-rw-r--r-- 1 root root 0 Mar  1 17:33 /tmp/mark@er.txt

使用的 Perl 命令:

#perl -e 'my $modtime = (stat("/tmp/mark@er.txt"))[9]|| die "$!"'
  No such file or directory at -e line 1.

谁能帮助如何为 stat() 转义这些字符?

4

1 回答 1

3

perl在那里“看到”一个@er数组,所以你正在stating /tmp/mark.txt。试试这个:

perl -e 'my $modtime = (stat("/tmp/mark\@er.txt"))[9] || die "$!"'

或者您可以使用非插值单引号q()(thanks amon)

perl -e 'my $modtime = (stat(q(/tmp/mark@er.txt)))[9] || die "$!"'
于 2013-03-01T12:23:40.070 回答