Linux常用压缩命令_解压xz文件命令 linux_gzip压缩解压文件

写在上面:

你们都晓得,在Windows笔记本中压缩文件文件大小有两个显著的益处,一是可以降低储存空间,二是通过网路传输文件时,可以降低传输的时间。。在Linux系统中同样支持这些操作,但是不同的压缩方法,压缩的疗效还不一样,下边就和你们分享一下我日常工作中维护Linux系统常用的一些压缩命令

一、Linux中常用的压缩文件拓展名

工作中常用压缩文件拓展名

文件拓展名类型拓展名阐述

二、常用压缩命令解读

2.1gzip压缩和解压文件

gzip是在Linux系统中常常使用的一个对文件进行压缩和解压缩的命令,既便捷又好用。gzip除了可以拿来压缩大的、较少使用的文件以节约c盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。

使用句型:

gzip压缩(解压缩)的文件名

参数解读:

-c将输出讲到标准输出上,并保留原有文件。

-d将压缩文件解压。

-l对每位压缩文件,显示下述数组:

第一列:压缩文件的大小第二列:未压缩文件的大小

第三列:压缩比第四列:未压缩文件的名子

-r递归式地查找指定目录并压缩其中的所有文件或则是解压缩。

-t测试,检测压缩文件是否完整。

-v对每一个压缩和解压的文件,显示文件名和压缩比。

-num用指定的数字num调整压缩的速率,-1或--fast表示最快压缩方式(低压缩比),-9或--best表示最慢压缩方式(高压缩比)。系统缺省值为6。

常用操作示例:

A.压缩A指定目录下的所有文件

在目录/gzip下有文件1.txt2.txt3.txt,全部压缩成.gz文件。

[root@10-6-161-230-Mob gzip]# cd /gzip/   
[root@10-6-161-230-Mob gzip]# gzip *
[root@10-6-161-230-Mob gzip]# ll
total 12
-rw-r--r-- 1 root root  362 Sep 16 16:33 1.txt.gz
-rw-r--r-- 1 root root  722 Sep 16 16:34 2.txt.gz
-rw-r--r-- 1 root root 1472 Sep 16 16:34 3.txt.gz

B.解压指定文件下的所有压缩文件

解压/gzip目录下的每位压缩文件

[root@10-6-161-230-Mob gzip]# cd /gzip/
[root@10-6-161-230-Mob gzip]# gzip -dv *
1.txt.gz:        66.5% -- replaced with 1.txt

Linux常用压缩命令_解压xz文件命令 linux_gzip压缩解压文件

2.txt.gz: 53.8% -- replaced with 2.txt 3.txt.gz: 53.4% -- replaced with 3.txt [root@10-6-161-230-Mob gzip]# ll total 12 -rw-r--r-- 1 root root 984 Sep 16 16:33 1.txt -rw-r--r-- 1 root root 1492 Sep 16 16:34 2.txt -rw-r--r-- 1 root root 3092 Sep 16 16:34 3.txt

C.查看所有早已压缩文件的压缩详情,不会解压文件

[root@10-6-161-230-Mob gzip]# cd /gzip/
[root@10-6-161-230-Mob gzip]# gzip -l *
         compressed        uncompressed  ratio uncompressed_name
                362                 984  66.5% 1.txt
                722                1492  53.8% 2.txt
               1472                3092  53.4% 3.txt
               2556                5568  54.7% (totals)

内容解读:

第一列:压缩文件的大小

第二列:未压缩文件的大小

第三列:压缩比

第四列:未压缩文件的名子

D.压缩一个tar备份文件,此时压缩文件的扩充名为.tar.gz

[root@localhost test]# ls -al log.tar
-rw-r--r-- 1 root root 307200 11-29 17:54 log.tar
[root@localhost test]# gzip -r log.tar
[root@localhost test]# ls -al log.tar.gz 
-rw-r--r-- 1 root root 1421 11-29 17:54 log.tar.gz

E.递归的压缩目录

递归的压缩/gzip目录

[root@10-6-161-230-Mob ~]# gzip -rv /gzip/
/gzip//2.txt:    53.8% -- replaced with /gzip//2.txt.gz
/gzip//3.txt:    53.4% -- replaced with /gzip//3.txt.gz
/gzip//1.txt:    66.5% -- replaced with /gzip//1.txt.gz
[root@10-6-161-230-Mob ~]# cd /gzip/
[root@10-6-161-230-Mob gzip]# ll
total 12
-rw-r--r-- 1 root root  362 Sep 16 16:33 1.txt.gz
-rw-r--r-- 1 root root  722 Sep 16 16:34 2.txt.gz

gzip压缩解压文件_Linux常用压缩命令_解压xz文件命令 linux

-rw-r--r-- 1 root root 1472 Sep 16 16:34 3.txt.gz

解读:

递归压缩的操作,由于是对目录操作,所以须要加上-r选项linux社区,这样也可以对子目录进行递归的。并且对原目录没有影响,只是目录上面的文件相应变成了.gz.这就是压缩

F.递归解压指定目录【/gzip】的文件

[root@10-6-161-230-Mob ~]# cd /gzip/
[root@10-6-161-230-Mob gzip]# ll
total 12
-rw-r--r-- 1 root root  362 Sep 16 16:33 1.txt.gz
-rw-r--r-- 1 root root  722 Sep 16 16:34 2.txt.gz
-rw-r--r-- 1 root root 1472 Sep 16 16:34 3.txt.gz
[root@10-6-161-230-Mob gzip]# gzip -dr /gzip/
[root@10-6-161-230-Mob gzip]# ll
total 12
-rw-r--r-- 1 root root  984 Sep 16 16:33 1.txt
-rw-r--r-- 1 root root 1492 Sep 16 16:34 2.txt
-rw-r--r-- 1 root root 3092 Sep 16 16:34 3.txt

G.gunzip命令解读

Linuxgunzip命令用于解压文件。

gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这种压缩文件预设最后的扩充名为.gz。事实上gunzip就是gzip的硬联接解压xz文件命令 linux,因而不论是压缩或解压缩解压xz文件命令 linux,都可通过gzip指令单独完成。

例如下边的示例:

[root@test ~]#gzip –d /test/test.testzip.gz 
                                   ## 等价于执行
[root@test ~]#gunzip /test/test.zip.gz

2.2tar--打包和备份的归档工具

--将多个零散的文件归档为一个单独的文件,而且能从归档中还原文件。

重要说明:工作中很常用

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录弄成一个总的文件;压缩则是将一个大的文件通过一些压缩算法弄成一个小文件。

为何要分辨这两个概念呢?这缘于Linux中好多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),之后再用压缩程序进行压缩(gzipbzip2命令)。

句型

tar [选项...] [FILE]...

选项

-A, --catenate, --concatenate   追加 tar 文件至归档
-c, --create               创建一个新归档
-d, --diff, --compare      找出归档和文件系统的差异
    --delete               从归档(非磁带!)中删除
-r, --append               追加文件至归档结尾
-t, --list                 列出归档内容

gzip压缩解压文件_解压xz文件命令 linux_Linux常用压缩命令

--test-label 测试归档卷标并退出 -u, --update 仅追加比归档中副本更新的文件 -x, --extract, --get 从归档中解出文件 - z:有gzip属性的 - j:有bz2属性的 - Z:有compress属性的 - v:显示所有过程 - O:将文件解开到标准输出

操作示例:

A.打包目录下所有.txt结尾的文件

参考命令:tar-cfall.tar*.txt

解压xz文件命令 linux_Linux常用压缩命令_gzip压缩解压文件

B.解压文件到当前目录

参考命令:tar-xvfall.tar

解压xz文件命令 linux_gzip压缩解压文件_Linux常用压缩命令

C.解压文件到指定目录

参考命令:tar-xvfall.tar-C/test2/

注意:核心参数是-C(小写)

gzip压缩解压文件_Linux常用压缩命令_解压xz文件命令 linux

D.打包并压缩【工作中很常用】

tar可在打包时直接压缩,支持gzip压缩、bzip2压缩和xz压缩。

使用-z选项可压缩成gzip格式的文件

参考命令:tar-zcvftest.tar.gz/test2/

Linux常用压缩命令_gzip压缩解压文件_解压xz文件命令 linux

F.-zx选项,解压.tar.gz格式的压缩包

参考命令:

tar-xvzftest.tar.gz#j解压到当前目录

tar-xvzftest.tar.gz-C/test4#解压到指定目录

gzip压缩解压文件_Linux常用压缩命令_解压xz文件命令 linux

2.3Linuxzip命令用于压缩文件。

说明:zip是个使用广泛的压缩程序,压缩后的文件后缀名为.zip。

句型:

zip压缩包名源文件或源目录列表

常用参数:

-c:将解压缩的结果

-l:显示压缩文件内所包含的文件

-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换

Linux常用压缩命令_gzip压缩解压文件_解压xz文件命令 linux

-t:检测压缩文件是否正确

-u:与-f参数类似,而且不仅更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中

-v:执行是时显示详尽的信息

操作示例:

A.将/test/test/这个目录下所有文件和文件夹打包为当前目录下的test.zip:

[root@10-6-161-230-Mob gzip]# zip -q -r test.zip /test/test

B.若果在我们在/test/test目录下,可以执行以下命令:

[root@10-6-161-230-Mob gzip]# zip -q -r test.zip *

C.从压缩文件cp.zip中删掉文件a.test

[root@10-6-161-230-Mob gzip]# zip -dv test.zip a.test

2.3Linuxunzip命令用于解压文件

说明:

Linuxunzip命令用于解压缩zip文件,unzip为.zip压缩文件的解压缩程序。

常用参数:

-l显示压缩文件内所包含的文件。

-v执行是时显示详尽的信息。

-n解压缩时不要覆盖原有的文件。

-o不必先寻问用户,unzip执行后覆盖原有文件。

常用操作示例:

A.在当前目录解压:text.zip

[root@10-6-161-230-Mob gzip]# unzip test.zip

B.解压到指定的目录:【-d+目录路径】

[root@10-6-161-230-Mob gzip]# unzip -d /temp test.zip

C.解压的时侯,不覆盖早已存在的同名文件,加上-n参数

[root@10-6-161-230-Mob gzip]# unzip -n -d /temp test.zip

D.覆盖先前的文件

[root@10-6-161-230-Mob gzip]# unzip -o test.zip -d /tmp/

E.只看一下zip压缩包中包含什么文件,不解压缩

[root@10-6-161-230-Mob gzip]# unzip -l test.zip

F.查看显示的文件列表还包含压缩百分比

[root@10-6-161-230-Mob gzip]# unzip -v test.zip

三、文件的传输

3.1本地文件拷贝【cp】

句型:

cpsourcedest或则cpsource…directory

常用参数解读:

-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

操作示例:

解压xz文件命令 linux_Linux常用压缩命令_gzip压缩解压文件

使用指令cp将当前目录test/下的所有文件复制到新目录newtest下,输入如下命令:

[root@10-6-161-230-Mob gzip]# cp –r test/ newtest 

3.2远程文件复制【scp】

说明:

Linuxscp命令用于Linux之间复制文件和目录。

scp是securecopy的简写,scp是linux系统下基于ssh登录进行安全的远程文件拷贝命令。

句型缩写:

scp

可选参数

file_sourcefile_target

常用参数解读:

-r:递归复制整个目录。-Pport:注意是小写的P,port是指定数据传输用到的端标语

命令格式详尽:

[root@10-6-161-230-Mob gzip]# scp 本地文件 远程用户名@远程ip:远程路径 
或者 
[root@10-6-161-230-Mob gzip]# scp 本地文件 远程用户名@远程ip:远程文件
或者 
[root@10-6-161-230-Mob gzip]# scp 本地文件 远程ip:远程路径
或者 
[root@10-6-161-230-Mob gzip]# scp 本地文件 远程ip:远程路径

递归目录复制:

[root@10-6-161-230-Mob gzip]#scp -r 本地目录 远程用户名@远程ip:远程目录
或者 
[root@10-6-161-230-Mob gzip]#scp -r 本地目录 远程ip:远程目录

指定端标语复制:

#scp 命令使用端口号 57522
[root@10-6-161-230-Mob gzip]# scp -P 57522 用户名@ip:文件名 远程路径

操作示例展示:

两台机器IP分别为:A.10.6.161.230linux是什么系统,B.10.6.161.231。

1.在A服务器上操作,将B服务器上/home/lk/目录下所有的文件全部复制到本地的/root目录下:

[root@10-6-161-230-Mob gzip]# scp -r root@:10.6.161.230/home/lk    /root

2.在A服务器中将/root/lk目录下所有的文件传输到B的/home/lk/cpfile目录下

[root@10-6-161-230-Mob gzip]# scp -r /root/lk  root@10.6.161.230:/home/lk/cpfile

3.在A服务器中将/root/lk目录下所有的文件传输到B的/home/lk/cpfile目录下使用指定端口57522

[root@10-6-161-230-Mob gzip]# scp -P 57522 -r /root/lk  root@10.6.161.230:/home/lk/cpfile

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复