Linux下zcat命令详解及C/C++代码实现
如果一个压缩文件非常大,而您只想查看文件的内容是什么。 由于在这种情况下,文件的解压将花费大量时间,因此为了节省时间并在不解压文件的情况下查看文件,可以使用zcat命令。
zcat 命令
通常 zcat 用于查看由 gzip 压缩实用程序创建的文件。zcat 将命令行中列出的文件或由标准输入输入的数据解压,解压后的数据写到标准输出。
Zcat 命令的语法:
zcat [选项] [名称]
选项-a --asciiAscii文本模式:按本地习惯转换行结束符。该选项仅在一些非Unix 系统上有效。 对于MSDOS,在压缩时CR LF(译注:即回车和换行符)被转换为LF,在解压时LF被转换为CR LF。-c --stdout --to-stdout将结果写到标准输出;原文件保持不变。如果有多个输入文件,输出将由一系列 独立的压缩文件组成。如果想得到较好的压缩率,在压缩前应将多个文件连在一起。-d --decompress --uncompress解压缩。-f --force强制压缩和解压缩,即使指定文件具有多重连接,或相应文件已经存在,或压缩数据 来自或写往一个终端。 如果输入数据是 gzip无法识别的格式,同时在命令行中也给出了--stdout选项,gzip将把输入数据拷贝至标准 输出而不做任何改动,就象cat所做的一样。 如果未给出 -f选项,并且未在后台运行, gzip 会提示用户以确认是否覆盖一个已存在的文件。-h --help显示帮助信息然后退出。-l --list列出每个压缩文件的如下项目:
zcat将两个参数作为选项和文件名。 提供最终结果以显示压缩文件内容而不解压缩文件。
创建了 test.txt 文件并在 gzip 的帮助下对其进行压缩。 在 zcat 命令的帮助下,我们能够读取压缩文件的内容。
如果您尝试使用标准 cat 命令查看test.txt.gz其内容,您将看到一个乱码输出:
zcat 命令主要使用两个组件,即选项和压缩文件名。 任何最终用户或客户端何时会触发 zcat 命令? zcat 命令将接受输入作为选项,将压缩文件作为标准输入,并将压缩文件内容作为标准输出显示。
注意:zcat 实用程序仅适用于 gzip 或 gunzip 压缩文件。 如果它可以与 tar 压缩技术一起使用,它将无法工作。
zcat 多个压缩.gz文件查看
在 zcat 命令中,我们具有在同一命令中同时查看多个压缩文件的功能。
按照上面的 zcat 命令,我们可以同时读取压缩文件的个数。 从数据目录中,我们同时读取两个压缩文件,即 test.txt.gz test1.txt.gz。
zcat 强制文件查看
在 zcat 命令中,无论文件是否压缩,我们都具有显示文件内容的功能。 要强制打印满足要求的文件,我们需要在 zcat 命令中使用“-f”选项。
即使内容是二进制或加密形式,这也会显示文件的内容。
zcat 获取打印压缩信息
在 zcat 命令的帮助下,我们可以得到文件的压缩信息。 要打印压缩信息,我们需要在 zcat 命令中使用“-l”选项。
compressed size: 压缩文件的长度
uncompressed size: 压缩前文件的长度
ratio: 压缩率(如果未知则为0.0%)
uncompressed_name: 压缩前的文件名
按照上面的命令,我们可以找到压缩文件的压缩状态。 我们正在使用其中一个文件,即 file.txt.gz。 压缩信息将显示压缩的、未压缩的比率信息以及压缩文件名。
zcat 压制所有警告信息
有时在打印任何压缩数据时,会出现大量警告。 为了避免这种情况,我们需要在 zcat 命令中使用“-q”选项。
可以在 zcat 命令中使用“-q”选项来避免警告。
zcat命令代码实现
int main(int argc, char *argv[])
{gzFile zfp;/* 保存程序名称并跳过 */prog = argv[0];argc--, argv++;/* 忽略任何开关 */while (*argv && (**argv == '-')) {argc--, argv++;}if (argc == 0) {zfp = gzdopen(STDIN_FILENO, "rb");if (zfp == NULL)error("can't gzdopen stdin");gz_uncompress(zfp, STDOUT_FILENO);return 0;}do {/* file_uncompress(*argv); */zfp = gzopen(*argv, "rb");if (zfp == NULL) {error("can't gzopen `%s'", *argv);_exit(EXIT_FAILURE);}gz_uncompress(zfp, STDOUT_FILENO);} while (argv++, --argc);return 0; /* 避免警告 */
}
编译运行:
总结
毫无疑问,如果您只想查看压缩文件的内容,zcat 命令可以节省您的时间。 有关更多信息,请访问其手册页。
欢迎关注微信公众号【程序猿编码】,需要zcat 命令完整源码的添加本人微信号(c17865354792)
Linux下zcat命令详解及C/C++代码实现相关推荐
- Linux下dirname命令详解及C/C++代码实现
dirname命令的基本用法非常简单--只需写下命令名,后跟文件的绝对名称即可. 在输出中,将获得完整的目录树,但文件名除外. linux dirname 命令 以下是 dirname 命令的通用语法 ...
- Linux下rm命令详解及C/C++代码实现
rm 命令是 Unix/Linux 操作系统中的基本命令之一.rm(即删除)命令用于删除 Linux 和其他类 Unix 操作系统上的文件和目录.此命令通常以静默方式运行,运行 rm 命令时应非常小心 ...
- Linux下uniq命令详解及C/C++代码实现
Linux uniq 命令用于从文件中删除所有重复的行. 此外,它还可用于显示任何单词的计数.仅重复行.忽略字符以及比较特定字段. 它是 Linux 系统中最常用的命令之一. uniq 命令使用 Un ...
- Linux下chmod命令详解及C/C++代码实现
Linux 中对文件的访问由文件权限.属性和所有权控制. 因此,只有授权的用户和进程才能访问文件和文件夹.本篇使用 chmod 命令更改文件和目录的访问权限. Linux 文件权限 在这之前,让我们先 ...
- Linux下touch命令详解及C/C++代码实现
touch 命令是创建新的空文件的最简单方法.它还用于更改现有文件和目录的时间戳(即最近访问和修改的日期和时间),是 UNIX/Linux 操作系统中使用的标准命令. touch 命令 touch的语 ...
- Linux下date命令详解及C/C++代码实现
Linux date 命令用于显示系统日期和时间. date 命令可以用于设置系统的日期和时间. 默认情况下,date 命令显示配置 unix/linux 操作系统的时区中的日期.如果你是超级用户 ( ...
- linux下dd命令详解
linux下dd命令详解 名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...
- linux下scp命令详解
http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792179.html linux下scp命令详解 http://www.9usb.net/20 ...
- linux下tree命令详解
From:http://blog.163.com/ly_89/blog/static/186902299201161302812880/ linux下tree命令详解---linux以树状图逐级列出目 ...
最新文章
- mysql yearweek 日期不准_Mysql 中,WEEK 与YEARWEEK函数的参数问题
- win32应用程序创建流程
- angularjs 弹出框 $modal传值
- 不能安装_钢厂为什么不能随意更换一氧化碳报警器安装位置
- 很有意思的css口诀
- TCP/IP 和 TCP/IP的 三/四次握手
- vue保存页面的值_vue中使用localStorage存储信息
- Spyder远程连接矩池云
- 机器学习模型实战!如何从 900 万张图片中对 600 类照片进行分类? | 技术头条...
- 01 Django简介
- 亲测源码多多进鱼带VUE源码任务悬赏源码活动营销三级分销返佣积分商城版
- PHP校园食堂系统描述
- FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法
- 3GQQ幻想西游攻略
- HDMI CEC HDCP
- 【webView】webView和原生Android交互
- python如何在图片上添加文字_Python在图片中添加文字的两种方法
- 广东深圳计算机学校排名2015,2015年广东深圳重点小学排名
- 第一道bfs,撸了一晚上
- Word文档怎么横向排版?这三种方法简单高效专业