任何系统的使用都无法避免的一种操作那就是为了节省存储空间或者说网络下载的的数据也会有压缩。
而在Linux中自然也有压缩解压的命令指令。其中常用的命令有
命令 | 作用 |
---|---|
gzip/gunzip | gzip是压缩文件,gunzip解压文件。(这个命令只能压缩解压文件不能是目录) |
zip/unzip | zip用于压缩而unzip用户解压 |
tar | tar其解压和压缩是靠后面参数进行区别 |
gzip/gunzip
这个压缩和解压命令只能操作文件,而无法操纵文件目录,如果压缩文件目录会提示:gzip: s is a directory – ignored
其压缩后的后者是gz
#压缩文件 t.txt
gzip t.txt
(默认会在当前目录下生成一个t.txt.gz文件,同时会删除原文件t.txt 文件)
# 解压文件 t.txt.gz
方法一 :gunzip t.txt.gz
(默认会在当前目录下生成一个t.txt文件,同时会删除原文件t.txt.gz 文件)
方法二:gzip -d t.txt.gz
两种方式的的操作效果完全一样
# 当然也可以同时解压和压缩多个单独的文件
gzip t.txt t1.txt 生成各自的gz格式的压缩包
#如果查看某个压缩文件的信息可以
gzip -l t.txt.gz
会输出
# 如果非要将文件压缩到其他的文件夹下面,就需要重定向符号>还有-c参数的配合 (-c 将结果写到标准输出;原文件保持不变0
#将t.txt 文件压缩存储在当前目录下的test文件夹下面
gzip -c t.txt > ./t/t.txt.gz 原文件不会删除
# 将文件解压,还要看详情 那就需要-v 这个参数
gzip -dv t.txt.gz
# -r 递归文件目录,然后将其文件目录下的文件依次压缩在各自的原有目录下,然后删除原文件
gzip -r 文件夹目录
补充:
>: 重定向符号,可以将其前面得到的结果 然后重新转的另一个位置。
>>:内容追加, 作为新内容添加到后面操作里面
|:管道符,将前面的结果依次作为参数传递到后面
(这三个符号后面再文件操作补充中会详细演示,本篇主要将压缩和解压,所以不在仔细聊)
zip/unzip
zip压缩可以压缩文件以及文件夹,这个是很多程序发布用的压缩方式之一。
zip的命令格式
格式zip [参数] {压缩后的文件} {需要压缩的文件或文件夹}
zip 如果不带参数
zip 文件或文件夹.zip 文件或者文件夹
如果压缩文件还好没问题,但是如果是压缩文件夹的话,只会将文件夹这个目录进行压缩,然后你解压的时候会发现其目录下是空的
现在看一下常用的参数,不是全部如果需要了解全部请用man 命令查看。
# 压缩当前目录下的text文件夹,以及其内部子类最后生成一个 test.zip 压缩文件
zip -r test.zip test -r 递归
# 因为要压缩的时候会在命令窗口输出压缩文件以及压缩率,如果很多的话影响输入命令,所以用-q
zip -rq test.zip test
#删除压缩包test.zip 中的的test.txt 文件
zip -d test.zip test.txt (无法删除目录)
#压缩文件test 带上密码 123
zip -r -P 123 test.zip test
#对文件夹下文件进行文件添加注释
-c参数可让你以交互方式为zip中的每个文件添加单行注释。例如zip -c -r test.zip test
-z参数可让你以交互方式为整个zip添加多行注释。例如zip -z -r test.zip test
unzip
解压zip压缩为的文件
格式: unzip [参数] 文件.zip
现在看一些常见的参数,同样不是全部。
# 查看test.zip 包含的文件和目录
unzip -l test.zip 这个显示的目录
unzip -v test.zip 这个显示更加详细
#解压 test.zip 到当前文件下
unzip test.zip (如果有密码,会在控制台提示输入密码,而且每一个文件都需要输入一次)
unzip -o -P 123 test.zip (-o 不循环用户直接前面操作覆盖)
# 如果需要解压到某目录下
unzip test.zip -d 文件路径
tar
这个也是一种常见的加密方式,而且解压压缩都是tar 只不过其后面的参数不一样
参数 | 作用 |
---|---|
-v | 显示详细信息 |
-f | 指定备份文件 |
-c | 建立新的备份文件。简单的说就是创建tar文件 |
-z | 根据命令而操作文件,如果在-c的时候会压缩文件,反之解压 |
-x | 解压tar文件 |
# 压缩文件test.txt 当前文件夹下test.txt.tar
tar -czvf test.txt.tar test.txt
#压缩两个文件
tar -czvf test.txt.tar test.txt test1.txt
# 压缩一个目录的test在当前目录下生成一个test.tar
tar -czfv test.tar test
当然也可以写其他路径
tar -czfv [路径]test.tar test
# 解压test.tar 文件在当前目录
tar -xzvf test.tar
# 解压文件 test.tar到某一个目录下(这个目录必须有完整父文件目录)
tar -xzvf s.tar -C t1 (-C(大写哦) 指定一个目录)