0

特定のファイルの統計情報を取得する Perl スクリプトがあります。ただし、ファイルでは機能しません.war。(このファイルにはシンボリックリンクがあります。)

複数のファイルがあるファイルの場所を渡しています。

$fntxtを指し/dw/xyz/file1.txtます。file1.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)
}

どんな助けでも大歓迎です。

4

1 に答える 1

0

シンボリックリンク(UNIXのフレーバーを想定)では、リンクではなく、リンク先のファイルに対するアクセス許可が必要です。-lを使用してファイルがシンボリックリンクであることを検出し、readlinkを使用してファイルがリンクされているものを確認します。複数のリンクがある場合(つまり、リンクへのリンク...)、ファイルが見つかるまでそれらをたどります。

于 2011-08-24T06:22:09.520 に答える