重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
tar 的功能类似于 Windows 中的 WinRAR。它可以将多个目录或文件打包成一个大文件,在打包的过程中还可以透过 gzip/bzip2/xz 的支持,对文件进行压缩 1 。
成都创新互联是一家专业的成都网站建设公司,我们专注成都网站设计、成都做网站、网络营销、企业网站建设,友情链接,广告投放平台为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。
tar 的选项参数很多,主要用到的有以下这些:
还是太多,记不住怎么办? 记住下面这些最常用的命令即可:
总结一下:z 为gzip;j 为bzip2;J 为xz。c 为压缩;t 为查询;x 为解压缩。最后跟着 vf。f 一定要是最后一个,如果放在其他选项之前,tar 就会把文件名搞错。比如 tar -zcfv xxx 命令,tar 指令就会认为压缩文件名为 v!
压缩的文件名称要根据压缩算法加上响应的后缀:
只有知道了压缩算法,我们才能解的出来,你说是吗?所以文件名规范很重要。
假设我们需要备份 /etc 文件夹,把它打成一个压缩包 1 。这在实际应用中很常见,因为 /etc 文件夹存放了系统主要配置文件。在英文中完整单词是etc.,也就是后面会带上一个句点,表示“等等”之意。
接下来,我们分别使用 gzip、bzip2与 xz 算法对 /etc 文件夹进行打包压缩。
gzip 压缩指令: time tar -zpcvf /root/etc.tar.gz /etc
bzip2压缩指令: time tar -jpcvf /root/etc.tar.bz2 /etc
xz 压缩指令: time tar -Jpcvf /root/etc.tar.xz /etc
从 real 中可以看出: gzip 的压缩速度最快,而 xz 的压缩速度最慢。
从大小上来看,xz 的压缩率最高,而gzip 压缩率最差。
压缩率高,自然需要时间成本。因此需要压缩的文件夹很大,那么就要多多考虑时间成本咯。因为 gzip 压缩速度快,这也是 *.tar.gz 比较流行的原因之一。
假设有这样一种场景:我们需要打包某个文件夹(/root),但这个文件夹中的某个文件或者子文件夹不想打包进去(带 etc 前缀)。也就是希望这个文件夹部分打包,部分不打包。可以执行以下指令:
tar -zcvf /root/test.tar.gz --exclude=/root/etc* --exclude=/root/test.tar.gz /root
加了 --exclude=/root/test.tar.gz 是为了排除自身,否则压缩包中会包含一个大小为 0 的自身文件,这恐怕不是我们希望看到的:
通过 tar -ztvf test.tar.gz 就可以查看刚刚新打的压缩包中所包含的文件列表:
使用命令 tar -ztvf etc.tar.gz 查看刚刚打好的压缩包。注意要使用匹配的解压缩算法才能正确解压,比如示例中是 gz 作为后缀,所以加了 -z 选项表示使用 gzip 算法进行解压。
部分输出内容:
可以看到该命令把文件的权限、账户以及归属组也一并打印出来了。
而且还有一点很关键,这些文件都没有根目录。如果没有拿掉根目录,解压缩后的文件名就会是绝对路径, 亦即解压缩后的数据一定会被放置 到 /etc/xxx 去 1 !这样系统的 /etc 文件夹就会被覆盖,后果很严重。所以,tar 打包指令默认都会去除放入包中文件的根目录。除非通过 -P 显示要求保留这些文件的根目录。
(1)完全解压
利用 tar -zxvf etc.tar.gz -C /tmp 命令把 etc.tar.gz 解压到 /tmp。解压成功后,就会在 /tmp 下看到 /etc 文件夹。
如果需要在本地路径下直接解开,那直接执行 tar -zxvf etc.tar.gz 即可。
(2)部分解压
假设我们需要把压缩包(etc.tar.gz)中的 vconsole.conf 解压出来。可以先执行以下命令,查询出该文件所对应的相对路径:
tar -ztvf etc.tar.gz | grep ‘console’
拿到需要解压的文件路径之后,就可以执行 tar -zxvf etc.tar.gz etc/vconsole.conf
进入当前目录的 etc 文件夹,就可以看到 vconsole.conf 已经被解压出来了:
【1】 鸟哥. 鸟哥的Linux私房菜 基础学习篇[M]. 第四版. 北京: 人民邮电出版社,2018:359-362.
使用快捷键Ctrl+Alt+T打开Linux的命令行窗口
然后输入解压命令即可,命令总结如下:
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz和*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
三种解压命令分别为:unzip,bzip2 -d,unzip text.zip 针对linux平台下不同的压缩文件类型选择不同的解压文件命令:
1、gzip,gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序。它是Jean-loupGailly和MarkAdler一起开发的。gzip压缩文件名:zip或gz,gzip的解压命令:unzip
2、bzip2,bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件,压缩效果比传统的LZ77/LZ78压缩算法来得好。bzip2压缩文件名:bz,bzip2解压命令;bzip2 -d。
3、unzip text.zip ,语法为:unzip [-cflptuvz][-agCjLMnoqsVX][-P 密码][zip文件][文件][-d 目录][-x 文件] 或 unzip [-Z] ,将压缩文件text.zip在当前目录下解压缩。
扩展资料
linux解压缩zip文件命令参数
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
参考资料:百度百科—unzip
tar -zcvf cm-11.tar.gz cm-11
//将cm-11文件夹压缩成cm-11.tar.gz
split -b 4000M -d -a 1 cm-11.tar.gz cm-11.tar.gz.
//使用split命令,-b 4000M 表示设置每个分割包的大小,单位还是可以k
// -d "参数指定生成的分割包后缀为数字的形式
//-a x来设定序列的长度(默认值是2),这里设定序列的长度为1
执行命令后,生成压缩包如下:
tar -zcvf cm-11.tar.gz cm-11 | split -b 4000M -d -a 1 - cm-11.tar.gz.
//采用管道,其中 - 参数表示将所创建的文件输出到标准输出上
tar -zxvf cm-11.tar.gz
cat cm-11.tar.gz.* | tar -zxv
tar可以用来压缩打包单文件、多个文件、单个目录、多个目录。
Linux打包命令 tar
tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。
常用格式:
单个文件压缩打包 tar -czvf my.tar.gz file1
多个文件压缩打包 tar -czvf my.tar.gz file1 file2,...(file )(也可以给file 文件mv 目录在压缩)
单个目录压缩打包 tar -czvf my.tar.gz dir1
多个目录压缩打包 tar -czvf my.tar.gz dir1 dir2
解包至当前目录:tar -xzvf my.tar.gz
cpio
含子目录find x* | cpio -o /y/z.cpio
不含子目录ls x* | cpio -o /y/z.cpio
解包: cpio -i /y/z.cpio
[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 ....
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
tar命令用于对文件打包压缩或解压:
$ tar [选项] [文件]
以下是tar命令的常用参数:
tar是个打包的命令,它的作用是将一堆的文件或目录归档成一个.tar结尾的文件。生成tar包后,就可以用其他的压缩程序来对tar包进行压缩。
我们在上面看到的 -z 参数就是对tar包用Gzip程序进行了压缩,最后才生成了 .tar.gz 结尾的压缩包。如果不用 -z 参数而使用 -j 参数,也就是用bzip2程序压缩tar包,最后就会生成 .tar.bz2 结尾的压缩包。
使用tar命令打包压缩的一个好处是,它会保留原始文件的权限和属性。
我们经常会在windows系统上使用 .zip 格式的压缩文件,在linux中也可以将文件和目录压缩成zip格式,或者解压zip格式的压缩包。
但是zip的缺点是不能保留文件的权限和属性,解压后需要我们自己用chmod重新设置文件的权限。
打包: 指将多个文件(或目录)合并成一个文件,方便在不同节点之间传递或在服务器集群上部署.
压缩或打包文件常见扩展名: *.tar, *.tar.gz, *.gz, *.bz2, *.Z;
Linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名是必须的.因为linux支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法.
将文件夹打包,也能将包解开成文件夹.
例1: 在/tmp文件夹下创建demo文件夹,将/etc目录拷贝到/tmp/demo目录里,然后打包压缩成gz格式,要求显示压缩详情。
1)在/tmp文件夹下创建demo文件夹,将/etc目录拷贝到/tmp/demo目录里.
注意: 拷贝非空目录要加 -r
2)将etc文件夹打包压缩成gz格式,并显示压缩详情.
tar -czvf 打包压缩后文件名 被打包压缩的文件夹
如果打包压缩成.bz2格式,那么tar命令的参数: -cjvf.
例2: 先删除etc目录,解压缩myetc.tar.gz到当前目录.
1)删除etc目录
2)解压缩myetc.tar.gz到当前目录
例3: 将myetc.tar.gz解压缩到指定目录/home
例4: 仅仅解压缩myetc.tar.gz里的某个目录,例如etc/udev
1)先删除etc目录
2)解压缩myetc.tar.gz到etc/udev目录