如何使用perl获取war文件的统计信息

发布于 2024-11-28 06:58:59 字数 872 浏览 4 评论 0原文

我有 Perl 脚本,可以获取给定文件的统计信息。但它不适用于 .war 文件。 (该文件具有符号链接。)

我正在传递包含多个文件的文件位置。

$fntxt 指向 /dw/xyz/file1.txtfile1.txt 包含 /vob/vob1/test.war

执行 @Stats=stat($ln); 返回 .war 文件的空数组。

open(DAT, $fntxt);
@fnames=<DAT>;
close(DAT);
print "@fnames\n";

foreach $ln (@fnames)
{
    chomp $ln;
    $i = length $ln;   
    if ($i>0)
    {     
    @Stats=stat($ln);
    if (!@Stats)
    {
        print "File [$ln] specified in [$fntxt] does not exist. Correct then rerun.\n";
        exit 255;
    }

    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
         = localtime((stat($ln))[9]);
    $mon += 1;
    $year += 1900;

    $tstamp = sprintf("%04d%02d%02d%02d%02d.%02d",
        $year,$mon,$mday,$hour,$min,$sec)
}

任何帮助将不胜感激。

I have Perl script that gets stat information for a given file. But it does not work for .war file. (This file has symbolic link.)

I am passing file location which has multiple files.

$fntxt points to /dw/xyz/file1.txt. file1.txt has /vob/vob1/test.war.

Executing @Stats=stat($ln); returns an empty array for a .war file.

open(DAT, $fntxt);
@fnames=<DAT>;
close(DAT);
print "@fnames\n";

foreach $ln (@fnames)
{
    chomp $ln;
    $i = length $ln;   
    if ($i>0)
    {     
    @Stats=stat($ln);
    if (!@Stats)
    {
        print "File [$ln] specified in [$fntxt] does not exist. Correct then rerun.\n";
        exit 255;
    }

    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
         = localtime((stat($ln))[9]);
    $mon += 1;
    $year += 1900;

    $tstamp = sprintf("%04d%02d%02d%02d%02d.%02d",
        $year,$mon,$mday,$hour,$min,$sec)
}

Any help would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

何以心动 2024-12-05 06:59:00

使用符号链接(假设某种 unix 风格),您需要链接到的文件的权限,而不是链接的权限。使用 -l 来检测该文件是否是符号链接,并使用 readlink 来找出它链接到的内容。如果有多个链接(即链接到链接...),请跟随它们直到找到该文件。

With a symbolic link (assuming some flavor of unix) you want the permissions on the file being linked to, not the link. Use -l to detect that the file is a symbolic link and readlink to find out what it is linked to. If there are multiple links (i.e. link to link ...) follow them until you find the file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文