Linux中cat和zcat的区别?

Linux中cat和zcat的区别?,第1张

cat是用于查看普通文件的。

zcat 是用于查看压缩的文件

单个磁盘的容量现在已经超过了 1TB,但是大型数据文件、日志文件、图像以及电影等媒体文件很快就把磁盘装满了。为了节省空间,可以把许多文件压缩到原大小的几分之一。例如,Apache 日志文件(是简单的文本)可以压缩到原大小的十分之一。

尽管压缩可以节省磁盘空间,但是也会增加工作量。例如,如果需要分析压缩的 Apache 日志文件,就必须解压它,处理数据,然后重新压缩它。如果有大量日志文件(如果保留分析趋势所需的记录,这种情况很常见),那么开销会非常大。

幸运的是,gzip 套件包含许多可以 “在原地” 处理压缩文件的实用程序。zcat、zgrep、zless、zdiff 等实用程序的作用分别与 cat、grep、less 和 diff 相同,但是它们 *** 作压缩的文件。

例如:想在Linux系统下查看cat命令工具的源码,方法如下:

1、查看工具的路径

$ whereis cat

cat: /bin/cat /usr/share/man/man1/cat.1.gz

2、查看工具所属的包

$ dpkg -S /bin/cat

coreutils: /bin/cat

coreutils就是cat的源码包名

3、下载工具源码包

$ sudo apt-get source coreutils

[sudo] password for lizh: 

正在读取软件包列表... 完成

正在分析软件包的依赖关系树       

正在读取状态信息... 完成       

需要下载 10.8MB 的源代码包。

获取:1 http://mirrors.sohu.com/ubuntu/ maverick/main coreutils 8.5-1ubuntu3 (dsc) [1,891B]

获取:2 http://mirrors.sohu.com/ubuntu/ maverick/main coreutils 8.5-1ubuntu3 (tar) [10.7MB]

获取:3 http://mirrors.sohu.com/ubuntu/ maverick/main coreutils 8.5-1ubuntu3 (diff) [21.5kB]

下载 10.8MB,耗时 42秒 (254kB/s)                                            

gpgv: 于 2015年07月06日 星期一 13时49分55秒 CST 创建的签名,使用 RSA,钥匙号 21B2133D

gpgv: 无法检查签名:找不到公钥

dpkg-source: 警告: 对 ./coreutils_8.5-1ubuntu3.dsc 校验签名失败

dpkg-source: info: extracting coreutils in coreutils-8.5

dpkg-source: info: unpacking coreutils_8.5.orig.tar.gz

dpkg-source: info: applying coreutils_8.5-1ubuntu3.diff.gz

https://blog.csdn.net/whu_zhangmin/article/details/45870077

tar -zcvf cm-11.tar.gz cm-11

//将cm-11文件夹压缩成cm-11.tar.gz

split -b 4000M -d -a 1 cm-11.tar.gz cm-11.tar.gz.

//使用split命令,-b 4000M 表示设置每个分割包的大小,单位还是可以k

// -d "参数指定生成的分割包后缀为数字的形式

//-a x来设定序列的长度(默认值是2),这里设定序列的长度为1

执行命令后,生成压缩包如下:

tar -zcvf cm-11.tar.gz cm-11 | split -b 4000M -d -a 1 - cm-11.tar.gz.

//采用管道,其中 - 参数表示将所创建的文件输出到标准输出上

tar -zxvf cm-11.tar.gz

cat cm-11.tar.gz.* | tar -zxv

tar可以用来压缩打包单文件、多个文件、单个目录、多个目录。

Linux打包命令 tar

tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。

常用格式:

单个文件压缩打包 tar -czvf my.tar.gz file1

多个文件压缩打包 tar -czvf my.tar.gz file1 file2,...(file )(也可以给file 文件mv 目录在压缩)

单个目录压缩打包 tar -czvf my.tar.gz dir1

多个目录压缩打包 tar -czvf my.tar.gz dir1 dir2

解包至当前目录:tar -xzvf my.tar.gz

cpio

含子目录find x* | cpio -o >/y/z.cpio

不含子目录ls x* | cpio -o >/y/z.cpio

解包: cpio -i </y/z.cpio

[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....

参数:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!

因为不可能同时压缩与解压缩。

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

 例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成

 『 tar -zcvPf tfile sfile』才对喔!

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

--exclude FILE:在压缩的过程中,不要将 FILE 打包!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7135947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存