Linux基础
内容提要
- 压缩、打包、解压缩
权限说明
权限的类型 | 权限的数值 | 普通文件 | 目录/文件夹 |
---|---|---|---|
r:可读 | 4 | cat,less,more,head,tail等 | ls |
w:可写 | 2 | >(覆盖写入),>>(追加写入),touch,rm | mkdir,rmdir,mv(重命名) |
x:可执行 | 1 | ./文件名(可执行文件) | cd,cp,mv(移动) |
-:无权限 | 0 | 无操作 | 无操作 |
压缩与解压缩
压缩指令:gzip
说明:Linu压缩文件尾.gz(gzip)格式
执行权限:所有用户
语法:
gzip [选项] 文件/目录
选项:
-
-r
:将目录下的文件递归压缩(递归压缩是技术实现,并不是每一层都产生一个压缩包) -
-l
:显示已经压缩文件的压缩信息 -
-d
:解压缩 -
范例:
gzip demo01.c --压缩demo01.c文件, gzip -d demo01.c.gz ------------------------------------------- gzip -r chapter01 gzip -dr chapter01/demo01.c.gz --递归解压chapter/demo01.c.gz ------------------------------------------- gzip *.out *.c -- 批量压缩多个文件
另一种解压:
-
语法
gunzip [选项] 文件/目录
-
选项:
-r
:可以将目录下的文件递归解压缩
-
范例
gunzip demo01.c.gz gunzip -r chapter/demo01.c.gz
更高的压缩效率指令:bzip2
说明:压缩文件为.bz2的格式
执行权限:所有用户
语法:
bzip1 [选项] 文件名
选项:
-k
:保留源文件压缩,支持解压后保留压缩包-d
:解压缩-f
:覆盖解压/压缩(文件夹中有同名文件,用解压出来的文件覆盖同名文件)
范例:
bzip2 -k demo01.c --压缩demo01.c,保留源文件,压缩后米高程默认:demo01.c.bz2
bzip2 -df demo01.c.bz2 --解压demo01.c.bz2,解压出demo02.c,当前为覆盖式解压
-----------------------------------------------------------------------------
bzip2 -k demo01.c demo02.c --批量压缩(分开)
bzip2 -df demo01.c.bz2 demo02.c.bz2 --批量解压
另一种解压:
-
语法:
bunzip2 [选项] 文件名
-
选项:
-f
:如果压缩时保留源文件,覆盖解压
-
范例:
bunzip2 -f demo01.c.bz2 --解压demo01.c.bz2 bunzip2 -f demo01.c.bz2 demo02.c.bz2 --批量解压
总结:
- gzip和bzip2的区别
- gzip可以压缩文件夹中所有文件,bzip2不可以
- 与gzip相比,bzip有更高的压缩效率
- gzip和bzip不能混合使用,主要通过压缩文件的扩展名区分
压缩文件或目录:zip
说明:文件的后缀名是.zip
执行权限:所有用户
压缩的语法:
zip [选项] 压缩后的文件名 文件/目录
解压的语法:
unzip [选项] 压缩包(文件)的文件名
选项:
-
-r
:递归压缩,用于对文件夹的操作注意:不带选项会保留源文件(默认保留源文件)
范例:
zip demo03.zip demo03.c --压缩demo03.c,压缩后名字demo03.zip
unzip demo03.zip --解压缩
zip chapter01.zip chapter01 --压缩chapter01文件夹(仅仅从外层压缩--说的是压缩算法)
unzip chapter01.zip --解压缩
zip -r chapter02.zip chapter02 --递归压缩chapter02文件夹,压缩后名字是chapter02.zip(递归逐层压缩--说的是压缩算法)
unzip chapter02.zip
zip ./love/love.zip demo03.c --压缩demo03.到./love目录下,压缩后的文件名为love.zip
zip all.zip ./love/love.zip chapter01.zip chapter02.zip --将多个文件(夹)打包并压缩
注意:
当解压缩时,如果有同名文件或文件夹,会有提示让用户进行选择处理:
[y]es
:输入y,表示覆盖文件,进行替换(单文件一个个交互处理)
[n]o
:输入n,表示不覆盖文件(单文件一个个交互处理)
[A]ll
:输入A,表示覆盖文件夹(多文件,统一处理)
[N]one
:输入N,表示不覆盖文件夹(多文件,统一处理)
[r]name
:输入r,重命名解压后的文件
打包[压缩]指令:tar
执行权限:所有用户
语法:
tar [选项] 产生的文件名称 被压缩的文件或目录(空格隔开)
选项:
-
-c
:打包 -
-v
:显示命令执行的过程 -
-f
:用于指定打包文件的名称 -
-z
:打包时压缩/解包时解压缩操作的文件扩展名为.gz(指定压缩算法是gzip的压缩算法) -
-x
:解包 -
-j
:与-z
只能二选一,类似,使用的是bzip2的压缩算法扩展名是.bz2 -
范例:
-- 打包 tar -cvf all.tar chapter01 chapter02 demo03.c --打包chapter01,chapter02,demo03.c文件到 all.tar,未经过压缩,保留源文件 tar -xvf all.tar --解包all.tar中的chapter01,chapter02,demo03.c -- 打包 + 压缩 tar -zcvf all.tar.gz chapter01 chapter02 demo03.c --打包并压缩chapter01,chapter02,demo03.c文件 到all.tar.gz tar -zxvf all.tar.gz tar -jcvf all.tar.bz2 chapter01 chapter02 demo03.c --打包并压缩chapter01,chapter02,demo03.c文 件到all.tar.biz2 tar -jxvf all.tar.bz2
总结:
1.
*.tar
:用tar -xvf
解包*.gz
: 用gzip -d
解压缩*.tar.gz
:和*.tgz
用tar -zxvf
解压*.bz2
:用bzip2 -d
解压*.tar.bz2
:用tar -jxvf
解包*.zip
:用unzip
解压
总结:
实现打包压缩目前我们接触了三种用法:
① zip:打包并压缩
② tar + gzip:先打包,再压缩
③ tar + bzip2:先打包,再压缩 关于tar和gzip、bzip2实现混合使用的时候,一定是先打包,再压缩。
tar结合gzip、bzip2
自动调用gzip/bzip2程序完成相关操作
- 打包时,tar自动在最后调用gzip/bzip2对包进行压缩。
- 解包时,tar首先调用gzip/bzip2解压缩,然后再解开被gzip/bzip2处理过的.tar文件