tar 格式仅打包,不压缩。
tar.gz tar.bz2 jar zip 都为压缩文件。
1. 打包命令基本都是这个格式,就是具体的打包方式不同。
tar -zcvf [目标文件名].tar.gz [被打包文件名/目录名]
打包后的文件放在当前目录下。并命名为 [目标文件名].tar.gz 。
如果被打包文件在当前目录下,则直接打包他们,如果不在当前目录下,路径中经过的文件夹也被一并打包。
比如 tar -zcvf test.tar.gz aaa/bbb/file* //打包的文件树为 aaa --> bbb --> file1,file2....
其中 -z为gzip的压缩算法,-c 为压缩命令,- v 是显示过程,-f 在其后指定目标文件名。-f 要放在最后。
zip -r [目标文件名].zip [原文件/目录名] // zip 格式的压缩命令
tar -cvf [目标文件名].tar [原文件名/目录名] // tar格式的。仅打包,不压缩。
tar -jcvf [目标文件名].tar.bz2 [原文件名/目录名] // 与最开始那条的不同是 使用了bzip2压缩算法,-z 改为 -j
jar -cvf [目标文件名].jar [原文件名/目录名] // 如果是打包的是Java类库,并且该类库中存在主类,那么需要写一个META-INF/MANIFEST.MF配置文件
2.解压并解包:
tar -zxvf [原文件名].tar.gz
[原文件名].tar.gz 这里可以用绝对路径,也可以相对路径。
解压后的文件会在当前目录下。
总结:
两个命令生成的文件都在当前目录下,被处理的文件都可以用绝对路径或相对路径。
注意1: 要打包当前路径下的aaa文件夹里的文件时,路径为 aaa/file* ,而非 /aaa/file* ,后者会去找根目录下的aaa文件夹。
注意2: 打包文件时,用绝对路径则被打包的文件也是从根目录的文件夹开始,用相对路径不会出现之前的路径。
如上图,被打包的路径并不相同。
上图是第二个被打包的文件。开头文件夹为home。