700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Linux学习笔记十三——文件压缩 解压缩和归档

Linux学习笔记十三——文件压缩 解压缩和归档

时间:2021-11-29 06:54:46

相关推荐

Linux学习笔记十三——文件压缩 解压缩和归档

压缩、解压缩命令:

press/uncompress:压缩格式为Z,文件后缀为.Z

compress /path/to/file

uncompress /path/to/file.Z

2.gzip/gunzip/zcat:压缩格式为gz,文件后缀为.gz

gzip [OPTION] /path/to/file:压缩文件保存在被压缩文件的目录,压缩完成后会删除原文件

-v|verbose:显示指令执行过程

-d:解压缩,解压缩完成后删除原压缩文件

-#:1-9,指定压缩比,默认为6,数值越高,压缩比越高,用时越长

gunzip /path/to/file.gz:解压缩文成后删除原文件

zcat /path/to/file.gz:不解压的情况,查看文本文件的内容

3.bzip2/bunzip2/bzcat:压缩格式为bz2,比gzip有着更大压缩比的压缩工具,使用格式近似

bzip2 [OPTION] /path/to/file

-v|verbose:显示指令执行过程

-k:压缩或解压缩时保留原文件

-d:解压缩

-#:1-9,默认是6

bunzip2 /path/to/file.bz2

bzcat /path/to/file.bz2

4.xz/unxz/xzdec/xzcat:压缩格式为xz

xz [OPTION] /path/to/file

-#: 1-9, 默认是6

-k: 压缩时保留原文件

-d:解压缩

unxz|xzdec /path/to/file.xz

xzcat /path/to/file.xz

5.zip:即可以归档又可以压缩的工具

zip file.zip file1 file2 ...:默认压缩后不删除原文件

-r:recurse将目录内的全部文件压缩,zip -r foo.zip foo

-v|verbose:显示指令执行过程

unzip file.zip

-v|verbose:不压缩显示文件列表

归档(打包)命令:

tar:文件格式为.tar

-c:创建归档文件

-x:展开归档

-t:不展开归档,直接查看归档的文件列表

-f file.tar:操作的归档文件

--xattrs:归档时保留文件的扩展属性信息

-p:使用原文件的原属性

-C:指定工作目录,用于解压时指定解压文件的路径

注意:选项cxt只能同时使用一个

-zcf file.tar.gz:归档并调用gzip压缩

-zxf file.tar.gz:调用gzip解压缩并展开归档,-z选项可省略

-jcf file.tar.bz2:归档并调用bzip2压缩

-jxf file.tar.bz2:调用bzip2解压缩并展开归档

-Jcf file.tar.xz:归档并调用xz压缩

-Jxf file.tar.xz:调用xz解压缩并展开归档

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!

[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc<==打包后,以 gzip 压缩

[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc<==打包后,以 bzip2 压缩

特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file

如果加 j 参数,则以 .tar.bz2 来作为附档名

上述指令在执行的时候,会显示一个警告讯息:

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件

[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,

就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

[root@linux ~]# cd /usr/local/src

[root@linux src]# tar -zxvf /tmp/etc.tar.gz

在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说

我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz

则解开的目录会在 /usr/local/src/etc ,另外,如果您进入 /usr/local/src/etc

则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

[root@linux ~]# cd /tmp

[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,

就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

范例五:我要备份 /home, /etc ,但不要 /home/dmtsai

tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例六

[root@linux ~]#tar -cvf file2.tar /home/usr2/file2

tar: Removing leading '/' from members names

home/usr2/file2

该命令可以将/home/usr2/file2文件打包到当前目录下的file2.tar中,需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr2/,根目录'/'被自动去掉了)一并被压缩进来。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。