如何解决如何找到gzip文件为空的压缩文件
| 如何使用Perl查找gzip文件为空 当我解压缩它的空文件时,a.txt.gz 如何找到压缩gz是空的?解决方法
您无法直接获取未压缩文件的大小,但可以使用seek来查找它。从文件中创建一个对象,然后尝试搜索第一个字节。如果可以搜索,则文件大小至少为1个字节,否则为空。
#!/usr/bin/env perl
use strict;
use warnings;
use IO::Uncompress::Gunzip;
use Fcntl qw(:seek);
my $u = IO::Uncompress::Gunzip->new(\'readme.gz\');
if ( $u->seek(1,SEEK_CUR) ) {
print \"Can seek,file greather than zero\\n\";
}
else {
print \"Cannot seek,file is zero\\n\";
}
, 您可以使用Perl 5.10及更高版本随附的IO :: Compress :: Gzip(或通过CPAN下载)。并使用它来读取文件。
但是,您只需要对文件进行统计即可,然后简单地查看它是否仅包含26个字节,因为一个空文件仅包含26个字节的标头。
我想这完全取决于您要执行的操作。您只是在尝试确定压缩文件是否为空,还是打算先读取并解压缩?如果是前者,最简单的是stat
。如果是后者,请使用IO::Compress::Gzip
模块而不是一堆system
命令来调用gzip
。 IO::Compress::Gzip
随附所有Perl 5.10及更高版本,因此这是处理Zip的默认方式。
, 要检查压缩的tar文件的内容,请使用
tar -ztvf file.tgz
要列出.gz文件的内容,请使用
gzip --list file.gz
将其包装在perl中,并检查输出中的“ 8”字段
$ gzip --list fjant.gz
compressed uncompressed ratio uncompressed_name
26 0 0.0% fjant
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。