1、gzip/gunzip压缩
1)基本语法
gzip+文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip+文件.gz (功能描述:解压缩文件命令)
2)特点
(1)只能压缩文件不能压缩目录
(2)不保留原来的文件
3)案例
(1)gzip压缩
[root@hadoop101 opt]# ls
test.java
[root@hadoop101 opt]# gzip test.java
[root@hadoop101 opt]# ls
test.java.gz
(2)gunzip解压缩文件
[root@hadoop101 opt]# gunzip test.java.gz
[root@hadoop101 opt]# ls
test.java
2、zip/unzip压缩
1)基本语法
zip + 参数 + XXX.zip + 将要压缩的内容
(功能描述:压缩文件和目录的命令,window/linux通用且可以压缩目录且保留源文件)
参数:
-r 压缩目录
2)案例
(1)压缩 1.txt 和2.txt,压缩后的名称为mypackage.zip
[root@hadoop101 opt]# zip test.zip test1.java test.java
adding: test1.java (stored 0%)
adding: test.java (stored 0%)
[root@hadoop101 opt]# ls
test1.java test.java test.zip
(2)解压 mypackage.zip
[root@hadoop101 opt]# unzip test.zip
Archive: test.zip
extracting: test1.java
extracting: test.java
[root@hadoop101 opt]# ls
test1.java test.java test.zip
3、tar打包
1)基本语法
tar + 参数 + XXX.tar.gz + 将要打包进去的内容
(功能描述:打包目录,压缩后的文件格式.tar.gz)
参数:
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
2)案例
(1)压缩:tar -zcvf XXX.tar.gz n1.txt n2.txt
压缩多个文件
[root@hadoop101 opt]# tar -zcvf test.tar.gz test1.java test.java
test1.java
test.java
[root@hadoop101 opt]# ls
test1.java test.java test.tar.gz
压缩目录
[root@hadoop101 opt]# tar -zcvf test.java.tar.gz test1
test1/
test1/hello
test1/test1.java
test1/test/
test1/test/test.java
[root@hadoop106 opt]# ls
test1 test.java.tar.gz
(2)解压:tar -zxvf XXX.tar.gz
解压到当前目录
[root@hadoop101 opt]# tar -zxvf test.tar.gz
tar --no-same-owner -xzvf test.tar.gz -C /opt
解压到/opt目录
[root@hadoop101 opt]# tar -zxvf test.tar.gz -C /opt
4、使用root解压后文件夹权限不是root
使用root解压文件 tar -zxvf xxx.tar.gz 解压后,使用ll命令查看时候发现,文件的所有者不是root, userid 和groupid都是1000
根据id,gid找到用户信息,需要root权限,到/etc/passwd文件下查询对应的用户信息,在当前用户命令行使用 ID 命令 查询
userid,gid信息,结果不是root用户
这个和参数设置有关,使用 tar --no-same-owner -zxf 指定 --no-same-owner可以解决这个问题:
使用 --no-same-owner 会指定操作用户作为解压后文件的所有者
如果解压的时候,想要更改所属的用户,例如用户mt ,可以加上 --owner=mt,
不选择参数,就是默认指定参数--same-owner,压包的时候是谁的,就解压给谁
tar命令在解压时会默认指定参数--same-owner,所以以后解压文件一定要注意这个情况呀