扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
打包: 指将多个文件(或目录)合并成一个文件,方便在不同节点之间传递或在服务器集群上部署.
我们拥有10余年网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供网站设计制作、做网站、微信开发、微信平台小程序开发、成都做手机网站、H5页面制作、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。
压缩或打包文件常见扩展名: *.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目录
解压
语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。
x 从档案文件中释放文件。相当于拆包。
t 列出档案文件的内容,查看已经备份了哪些文件。
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
辅助选项:
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压? 一般格式为xx.tar.gz或xx. tgz
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩或解压?一般格式为xx.tar.bz2
-v :压缩的过程中显示文件!这个常用
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加其他参数!
-p :使用原文件的原来属性(属性不会依据使用者而变)
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
范例:
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc==打包后,以 bzip2 压缩
特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
上述指令在执行的时候,会显示一个警告讯息:
『tar: Removing leading `/" from member names』那是关於绝对路径的特殊设定。
范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
就得要加上 z 这个参数了!这很重要的!
范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说
我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz
则解开的目录会在 /usr/local/src/etc ,另外,如果您进入 /usr/local/src/etc
则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!
范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
范例五:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
另外:tar命令的C参数
$ tar -cvf file2.tar /home/usr2/file2
tar: Removing leading '/' from members names
home/usr2/file2
该命令可以将/home/usr2/file2文件打包到当前目录下的file2.tar中,需要注意的是:
使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr2/,根目录'/'被自动去掉了)一并被压缩进来
。使用tar命令解压缩后会出现以下情况:
$ tar -xvf file2.tar
$ ls
…… …… home …… ……
解压缩后的文件名不是想象中的file2,而是home/usr2/file2。
$ tar -cvf file2.tar -C /home/usr2 file2 该命令中的-C dir参数,将tar的工作目录从当前目录改为/home/usr2,将file2文件(不带绝对路径)压缩到file2.tar中。注意
:-C dir参数的作用在于改变工作目录,其有效期为该命令中下一次-C dir参数之前
。
使用tar的-C dir参数,同样可以做到在当前目录/home/usr1下将文件解压缩到其他目录,例如:
$ tar -xvf file2.tar -C /home/usr2
而tar不用-C dir参数时是无法做到的:
$ tar -xvf file2.tar /home/usr2
tar: /tmp/file: Not found in archive
tar: Error exit delayed from previous errors
主要针对单个文件压缩,而非目录
此工具来自于ncompress包,此工具目前已经很少使用
对应的文件是 .Z 后缀
格式
常用选项
范例
zcat file.Z 不显式解压缩的前提下查看文本文件内容
范例
来自于 gzip 包
对应的文件是 .gz 后缀
格式
常用选项
范例
范例
来自于 bzip2 包
对应的文件是 .bz2 后缀
格式
常用选项
范例
来自于 xz 包
对应的文件是 .bz2 后缀
选项
范例
zip 可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息,如:所有者和组信息,一般建议使用 tar 代替
分别来自于 zip 和 unzip 包
选项
范例
范例:交互式加密和解密
范例: 非交互式加密和解密
tar 即 Tape ARchive 磁带归档,可以对目录和多个文件打包一个文件,并且可以压缩,保留文件属性不丢失,常用于备份功能,推荐使用
对应的文件是 .tar 后缀
格式
选项
(1)创建归档,保留权限
(2)追加文件至归档:注:不支持对压缩文件追加
(3) 查看归档文件中的文件列表
(4) 展开归档
(5) 结合压缩工具实现:归档并压缩
范例
范例
范例
split 命令可以分割一个文件为多个文件
范例
将多个切割的小文件合并成一个大文件
cpio 是历史悠久的打包和解包工具,不过目前也已较少使用
cpio 命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件
格式
常用选项
范例
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 打包!
一般在linux下可以通过tar命令实现打包和压缩(或解压)。
tar-zcvffilefile.tar.gz打包并压缩成gzip格式,其中-c命令是创建tar包,-z参数是指定压缩成gzip格式。
ttar-zxvffile.tar.gz解包命令,其中-x是解包命令,-z指定解压缩格式是gzip。
ttar-jcvffilefile.tar.bz2打包并压缩成bzip2格式,其中-c是创建tar包,-j参数指定压缩成bzip2格式。tar-zxvffile.tar.gz解包命令,其中-x是解包命令,-j指定解压缩格式是bzip2。
linux打包压缩命令tar的方法如下:
操作设备:戴尔笔记本电脑
操作系统:win10
操作程序:linux主机2.01
1、首先进入到等待输入shell指令的linux命令行状态下,如下图所示。
2、输入shell指令:tar -czf test.tar.gz test.txt,如下图所示。
3、最后按下回车键就会看到test.txt被成功压缩为test.tar.gz,如下图所示。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流