linux - 解压缩
执行命令的时候,一定不要把命令写反,写反不会报错:
解压的时候,如果命令写反,会直接压缩空文件夹,覆盖掉需要解压的文件;
压缩的时候,如果把命令写成了解压,会解压已经存在的压缩包,覆盖需要压缩的文件。
.zip
-b 指定存放文件的目录;
-d 删除压缩文件内指定的文件;
-f 更新压缩包的文件;
-m 将文件压缩并加入压缩文件后,删除原始文件;
-q 不显示执行过程;
-r 递归处理,将指定目录下的所有文件和子目录一并处理;
-v 显示指令执行过程或显示版本信息(默认选项);
-sf 显示文件;
样例
# 安装解压程序
yum install -y unzip zip
# 解压文件
unzip file.zip
# 压缩文件
zip file.zip a.txt
# 压缩文件夹
zip -r file.zip dir/
.gz
gzip命令是特殊的,解压缩之后会删除原件
-r 递归处理,解压缩指定目录下以及子目录下的所有文件。
-c 把解压缩后的文件输出到标准输出设备。
-f 强制解压缩文件,不理会文件是否已存在等情况。
-l 列出压缩文件内容。
-v 显示命令执行过程。
-t 测试压缩文件是否正常,但不对其做解压缩操作。
样例
# 压缩,删除原件,dir 是压缩文件的存放路径,而不是需要压缩的目录
gzip file.txt /dir
# 压缩,不删除原件
gzip -c file.gz dir/
# 压缩,目录下全部文件,每个文件独立压缩,不是压缩整个文件夹,命令会删除原件
gzip -r file.gz dir/
# 解压,删除原件
gzip -d file.gz dir/
# 解压,删除原件
gunzip file.gz dir/
# 解压,不删除原件
gunzip -c file.gz
# 解压,目录下全部文件,删除原件
gunzip -r dir/
.tar
tar 命令是重点,使用频次远大于其他压缩命令。
-c: 压缩
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个参数是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
下面的参数是根据需要在压缩或解压档案时可选的。
-f:指定名称
-j:有bz2属性的
-O:将文件解开到标准输出
-v:显示所有过程
-z:有gzip属性的
-Z:有compress属性的
样例
# 解包(不会删除原件)
tar xvf file.tgz dir/
# 打包(不会删除原件)
tar cvf file.tgz dir/
.tar.gz(.tgz)
# .tar.gz 和 .tgz 是同一种格式
# 如果部分文件出错,gunzip 会解不出来,但是使用 tar 命令,可以把其中没错的部分解压出来
# 创建一个 .tgz 格式的压缩包
tar -zxvf file.tgz dir/
# 解压一个 .tgz 格式的压缩包
tar -zcvf file.tgz dir/
# 创建一个 .tar.gz 格式的压缩包
tar -zcvf file.tar.gz dir/
# 解压一个 .tar.gz 格式的压缩包
tar -zxvf file.tar.gz dir/
.bz2
# 创建一个 bzip2 格式的压缩包
tar -jcvf file.tar.bz2 dir/
# 解压一个 bzip2 格式的压缩包
tar -jxvf file.tar.bz2 dir/
查看压缩包的内容
# 查看 tar 包内容。
tar -tf file.tar
# 查看 tar 包详细属性:权限、文件所有者、组、创建日期等
tar -tvf file.tar
# 查看 zip 包里的内容
unzip -l file.zip
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!