我寫了一個應用一些unix命令的Perl包裝器,將輸出寫入日誌文件。不過,我看到它創建了一些空文件,但我看到一些正在創建的文件不是0大小,而是指出1byte;因此我在使用「if(-s」文件「)做其他事情做其他事情」的問題上遇到了一些後處理問題。有人可以幫助我爲什麼我的代碼創建一個空行(我想,雖然我已經在那裏放置一個chomp),有沒有辦法消除這個空行,以便輸出日誌文件將總是去0字節,如果沒有數據在處理unix命令後被捕獲?否則..你可以建議一種有效的方法來檢查文件是否爲這種情況下不是空的。文件長度不是0大小,但是是空的,如何消除這個?
sub sub_unaccessfiles {
my ($disk) = @_ ;
@disk_sorted = split (/\s+/, $disk) ;
$disk_Name = $disk_sorted[4] ;
my $aging_disk = basename ($disk_Name) ;
open (OUT3, ">./diskmonitor_logs/char_disks/aging_files_$aging_disk") || die "Cannot create ./diskmonitor_logs/char_disks/aging_files_$aging_disk: $!\n" ;
my $cmd_aging_grab = `find $disk_Name -type f -name .snapshot -prune -o -atime +180 -printf '%u\t%s\t%t\t%p\n'` ;
chomp $cmd_aging_grab ;
print OUT3 "$cmd_aging_grab\n" ;
close OUT3 ;
..
..
}
感謝Shawnhcorey,我想你的建議,它工作得完美,我得到了0大小的文件。非常感謝! :) – Grace 2012-08-17 00:31:22