微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何找到gzip文件为空的压缩文件

如何解决如何找到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 举报,一经查实,本站将立刻删除。