访问手机版  

Linux常用命令|Linux培训学习|考试认证|工资待遇与招聘,认准超级网工!

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 技术课程 > linux > 热点关注 > linux常用命令

Linux 常用命令:解压缩篇

时间:2019-10-30

linux命令vi进入后命令_linux常用shell命令_linux常用命令

Linux常用命令中,有很多用于对文件的压缩或解压,本文将介绍这些解压缩命令中不常见却非常实用的用法。

tar是linux中最常用的解压缩命令。tar命令可用于处理后缀名为tar,tar.gz,tgz,.tar.Zlinux常用命令,tar.bz2的文件。

涉及参数说明:

-c 建立新的压缩文件
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-v 显示操作过程
-k 保留源有文件不覆盖
-C 切换到指定目录
-f 指定压缩文件

--delete 删除包中文件
--strip-components 去除目录
--add-file 向包中添加文件
tar -cvf test.tar test1.log test2.log #归档多个文件
tar -cvf test.tar test/*  #归档test目录下所有文件
tar -cvf test.tar *.log  #归档所有以.log结尾的文件

由于这种方式不会进行压缩,仅做了归档,因此速度极快,同时占用空间也较大。

这种方式打包对文件进行了压缩:

tar -zcvf test.tar.gz file1 file2 #打包,并以gzip压缩
tar -jcvf test.tar.bz2 file1 file2 #打包,并以bzip2压缩

如果不想解压,只是想查看压缩包中的文件内容,可以使用-t参数:

tar -tvf test.tar #可查看test包中有哪些文件

有时候再打包后可能需要删除源文件,但一个个删除显得麻烦,我们可以使用--remove-files 选项:

tar -zcvf test.tar.gz test.log --remove-files 

对于某些目录下的文件,可能只需要打包部分文件,因此可以使用--exclude选项排除一些不需要打包的文件:

linux常用shell命令_linux常用命令_linux命令vi进入后命令

tar -zcvf test.tar.gz --exclude=test/*.log test/* #打包test目录下所有文件,排除以.log结尾的文件

这里用到了--exclude选项,支持通配符和正则表达式,因此也非常强大。

例如,压缩包中已经打入了test以及其他文件,现在你只想更新压缩包中的test文件,那么你可以使用--add-file选项:

tar -tf test.tar --add-file=test #只针对tar包

向tar包中增加文件可使用-r参数:

tar -rf test.tar testfile #在test.tar包中增加文件,只针对tar

在不解压的情况下,可使用--delete选项删除包中的文件:

tar --delete -f test.tar  test1 #从test.tar中删除test1文件
tar -xvf test.tar.gz
tar -xvf test.tar
tar -xvf test.tar.gz -C dir
tar -xvf test.tar -C dir

例如test.tar.gz包中文件情况如下:

1.txt
log/
log/1.log
log/2.log
log/2.log
log/4.log
log/5.log

如果我们只需要解压出log目录下的1.log,只需要执行下面的命令:

linux命令vi进入后命令_linux常用命令_linux常用shell命令

tar -xvf test.tar.gz log/1.log
tar -xvf test.tar.gz log/1.log -C test #将1.log解压到test目录