Skip to content
On this page

文件压缩

zip

压缩文件

shell
zip targetFile.zip sourceFile

示例:

shell
zip target.zip source.txt

压缩目录

  • -r表示递归遍历文件夹,包括子文件夹和文件,将它们一起压缩到目标ZIP文件中
shell
zip -r targetFile.zip sourceFile

解压缩文件

shell
unzip source.zip	

gzip

  • gzip可以将文件压缩的更小

  • gzip不支持压缩目录

压缩单个文件

a.txt压缩为.gz格式的压缩文件,源文件a.txt会被删除

shell
gzip sourceFile
# 例如
gzip a.txt

a.txt压缩为.gz格式的文件,源文件不会被删除

shell
gzip -c sourceFile > targetFile
# 例如
gzip -c a.txt > a.txt.gz

压缩目录下的所有文件

shell
gzip -r dirname

压缩file目录下的每个子文件,并删除原文件,当前目录无变化

  • 压缩前目录结构
shell
file1
├── 1.txt
├── B
   └── b.txt
├── C
   ├── 3.txt
   ├── C1
   └── D
       └── 6.txt
└── E

如上目录,在file1的上级目录执行gzip -r file1,执行后结果如下:

  • 压缩前目录结构
shell
file1
├── 1.txt.gz
├── B
   └── b.txt.gz
├── C
   ├── 3.txt.gz
   ├── C1
   └── D
       └── 6.txt.gz
└── E

解压缩

解压缩文件, 不保留原文件

shell
gzip -d gzipFile
# 或者
gunzip gzipFile

例子:

shell
gzip -d a.txt.gz

gunzip a.txt.gz	

TIP

  • gzip -d命令只能用于解压缩gzip格式的文件

  • gunzip命令只能用于解压缩gzip格式的文件

tar打包命令

tar打包

  • tar命令的基本用法是将一组文件和目录打包成一个单一的文件

  • tar命令只打包不压缩,打包后原文件也会保留

shell
tar -cvf targetFileName [file1, file2, dir1, dir2...]
  • -c 打包文件
  • -v 显示打包过程
  • -f 指定打包后的文件名
shell
# 会将a文件打包为一个a.tar文件
tar -cvf a.tar a

# 会将多个文件打包为一个a.tar文件
tar -cvf a.tar a b/1.txt c

解压 tar文件

shell
tar -xvf filename.tar
  • -x:解包(解压缩)归档文件的内容

tar.gz压缩格式

  • zip可以压缩目录但压缩效率不高gzip压缩效率高不支持目录

  • 可以将文件/目录先打包为.tar格式,再压缩为.gz格式

  • -z:表示使用gzip进行压缩。

  • -c压缩.tar.gz格式

  • -x解压缩格式为.tar.gz的文件

打包并压缩

将文件先打包为.tar格式,再压缩为.gz格式

shell
tar -zcvf a.tar.gz [file1, file2, dir1, dir2...]

解压缩

解压filename.tar.gz文件

shell
tar -zxvf filename.tar.gz

解压.rar文件

先下载rar包,下载完成后可以使用rar命令和unrar命令

shell
brew install rar

unrar

TIP

参数:

  • e:将文件解压缩到当前目录(会把所有的文件列出来,去掉了外层文件夹)

  • l/lb:列出档案

  • x:将文件解压到当前目录(解压包含了文件中的文件夹)

shell
unrar e xxx.rar dir/ // 会把所有的文件列出来,去掉了外层文件夹
unrar x xxx.rar // (推荐使用这个)解压包含了文件中的文件夹
unrar l xxx.rar // 列出xxx.rar内的文件结构
unrar lb xxx.rar // 列出xxx.rar内的文件结构