基础篇
2018-10-09 本文已影响0人
柒月的天空
Linux学习
一、zip压缩工具
二、tar打包
三、打包并压缩
一、zip压缩工具
- gzip、bzip2、xz都不支持压缩目录,zip支持压缩目录
- 安装工具可以解压windows下的rar文件
- 安装zip工具,yum install -y zip
- 压缩文件:zip 2.txt.zip 2.txt
- 压缩目录:zip -r 111.zip 3.txt 111 把目录111和文件3.txt同时压缩至111.txt
- zip压缩的特点是压缩之后不删除原文件
- zip解压缩命令:unzip,需安装unzip工具:yum install -y unzip
- unzip支持解压到指定目录下
- unzip时,压缩前的文件名不能被改动
- zip压缩后不能查看其内容,但是可以查看文件列表
- 查看文件列表命令:unzip -l 111.zip
操作
[root@01 d6z]# zip 2.txt.zip 2.txt
adding: 2.txt (deflated 75%)
[root@01 d6z]# ls
12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]# du -sh 2.txt
8.0M 2.txt
[root@01 d6z]# du -sh 2.txt
2.txt 2.txt.zip
[root@01 d6z]# du -sh 2.txt.zip
1.5M 2.txt.zip
[root@01 d6z]#
[root@01 d6z]# zip -r 111.zip 2.txt 111
adding: 2.txt (deflated 75%)
adding: 111/ (stored 0%)
adding: 111/2.txt (deflated 75%)
[root@01 d6z]# ls
111 111.zip 12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]# du -sh 111.zip
2.9M 111.zip
[root@01 d6z]#
[root@01 d6z]# unzip 111.zip
Archive: 111.zip
replace 2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: 2.txt
replace 111/2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: 111/2.txt
[root@01 d6z]# ls
111 111.zip 12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]# tree
.
├── 111
│ └── 2.txt
├── 111.zip
├── 12.txt.gz
├── 2.txt
├── 2.txt.zip
├── a.txt
├── a.txt.xz
└── b.txt
1 directory, 8 files
[root@01 d6z]# unzip 111.zip
Archive: 111.zip
replace 2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace 111/2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
inflating: 111/2.txt
[root@01 d6z]# ls
111 111.zip 12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]#
[root@01 d6z]# mkdir 12
[root@01 d6z]# unzip 2.txt.zip -d 12/
Archive: 2.txt.zip
inflating: 12/2.txt
[root@01 d6z]# ls
111 111.zip 12 12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]# tree
.
├── 111
│ └── 2.txt
├── 111.zip
├── 12
│ └── 2.txt
├── 12.txt.gz
├── 2.txt
├── 2.txt.zip
├── a.txt
├── a.txt.xz
└── b.txt
2 directories, 9 files
[root@01 d6z]#
[root@01 d6z]# unzip -l 111.zip
Archive: 111.zip
Length Date Time Name
--------- ---------- ----- ----
6090777 10-09-2018 08:40 2.txt
0 10-09-2018 08:44 111/
6090777 10-09-2018 08:44 111/2.txt
--------- -------
12181554 3 files
[root@01 d6z]#
二、tar打包
- 便于大文件传输,节省带宽资源
- tar -cvf 111.tar 111/ 参数: -c创建,-v可视化,-f文件名
- tar支持重复打包
- 解包tar -xvf 111.tar,tar解包后不会提示是否覆盖源文件,直接覆盖
- tar支持文件和目录同时打包
- tar -tf 111.tar 参数:-tf查看包
- tar可以过滤指定的文件或者目录
- tar -cvf 111.tar --exclude name.sh 111/
- 参数:--exclude后面跟指定过滤的文件或者目录
操作
[root@01 d6z]# ls
111 111.zip 12 12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]# tar -cvf 111.tar 111/
111/
111/2.txt
[root@01 d6z]# ls
111 111.tar 111.zip 12 12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]#
[root@01 d6z]# tar -cvf 111.tar 111/
111/
111/2.txt
[root@01 d6z]# ls
111 111.tar 111.zip 12 12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]#
[root@01 d6z]# tar -tf 111.tar
111/
111/2.txt
[root@01 d6z]#
[root@01 d6z]# tar -cvf 123.tar --exclude a.txt 111/
111/
111/2.txt
[root@01 d6z]# ls
111 111.tar 111.zip 12 123.tar 12.txt.gz 2.txt 2.txt.zip a.txt a.txt.xz b.txt
[root@01 d6z]# tar -tf 123.tar
111/
111/2.txt
[root@01 d6z]#
三、打包并压缩
- 打包的同压缩文件
- tar -czvf test.tar.gz liyang/ 参数:z表示压缩类型为gz
- tar -cjzf test.tar.bz2 liyang/ 参数:j表示压缩类型为bz2
- tar -cJzf test.tar.bz2 liyang/ 参数:J表示压缩类型为xz
- 解包把参数c改为x即可
- 查看包和压缩同样使用-tf参数
- 利用tar通过网络拷贝数据
- cd /data // data目录下有我们要拷贝的目标文件目录 test
- tar cvf - test| ssh 10.0.1.11 "cd /copy1/; tar xvf -"
- 首先将要拷贝的目录test打包,"-" 代表标准输出,
- 然后再ssh 到目标主机 10.0.1.11 ,运行相应的命令。
- 其中tar xvf - 意思是,将前面的标准输出内容作为解包的对象。
- 目的就是想拷贝的目录先打包,然后将打包好的文件拷贝到目标主机最后在目标主机上解包
- 此处用一条命令实现了边打包边解包的过程
- 把打包压缩的文件解压到指定目录下
- 加参数-C后面跟指定目录即可
- Linux下不支持解压大于4G的文件解决方法
- 解压命令:
- 7z x 123.zip
操作
[root@01 d6z]# tar -czvf 111.tar.gz aaa/
aaa/
[root@01 d6z]# ls
111 111.tar.gz 111.zip 12 123.tar 12.txt.gz 2.txt 2.txt.zip aaa a.txt a.txt.xz b.txt
[root@01 d6z]# tar -xzvf 33.tar.gz -C /tmp/
test/
[root@01 d6z]# cd ..
[root@01 tmp]# ls
a.txt.bz2 systemd-private-e48e1da9d62f410cb1a1742df18f10e7-chronyd.service-oR4g8U
a.txt.gz systemd-private-e48e1da9d62f410cb1a1742df18f10e7-vgauthd.service-8YdZ30
a.txt.xz systemd-private-e48e1da9d62f410cb1a1742df18f10e7-vmtoolsd.service-vCNEnQ
d6z test
[root@01 tmp]#
wget -c http://packages.sw.be/p7zip/p7zip-9.13-1.el5.rf.i386.rpm
wget -c http://packages.sw.be/p7zip/p7zip-plugins-9.13-1.el5.rf.i386.rpm
rpm -ivh p7zip-9.13-1.el5.rf.i386.rpm
rpm -ivh p7zip-plugins-9.13-1.el5.rf.i386.rpm