1. 以 .tar 格式
# 解压,不指定-C路径,默认在当前目录,-v列出详细信息
tar -xvf file.tar
# 打包
tar -cf file.tar file/
2. 以 .tgz 和 .gz 格式
# 解压
tar -zxvf file.tgz
tar -zxvf file.tar.gz
# 打包
tar -zcf all.tar.gz file/
# 解压.gz
gunzip file.gz
gzip -d file.gz
3. 以 .bz2 格式
# 解压
tar -jxf file.tar.bz2
# 打包
tar -jcf file.tar.bz2 file/
# 解压.bz2
bzip2 -d file.bz2
bunzip2 file.bz2
4. 以 .tar.xz 格式
展开
# 解压
tar -xvJf file.tar.xz -C /path/
# 分步解压
xz -d file.tar.xz
tar -xvf file.tar
# 打包
tar -cvf file.tar file/
xz -z file.tar
5. 以 .z 格式
# 解压
tar -Zxf file.tar.Z
# 打包
tar -Zcf file.tar.Z file/
# 解压.z
uncompress file.Z
6. 以 .zip 格式
# 解压
unzip file.zip
# 打包
zip file.zip file/
7. 以 .rar 格式
# 安装rar
tar -zxf rarlinux-x64-5.7.1.tar.gz
cd rarlinux-x64-5.7.1
make
# 解压
unrar e file.rar
# 压缩
rar a file.rar file/
附:tar参数列表
tar [-AcdrtuxGnSkUWOmpsMBiajJzZhPlRvwo?]
必须含有一个以上参数
-A 合并
-c 建立新压缩文档,即打包
-d 比较压缩文档与当前文件的不同
-r 追加到压缩文件
-t 查看内容
-u 更新文件到压缩文档中
-x 解压
其他参数
-b 指定块大小为 Nx512 字节(缺省时 N=20)
-B 读取时重组块
-C 转到指定的目录
-f 文档名字,只能在参数最后,接文档名(缺省为 /dev/rmt0)
-F 在每个磁盘结尾使用脚本(隐含-M)
-G 建立老 GNU 格式的备份
-g 建立新 GNU 格式的备份
-h 不转储动态链接,转储动态链接指向的文件
-i 忽略存档中的 0 字节块(通常意味着文件结束)
-k 保存现有文件;从存档中展开时不进行覆盖
-K 从存档文件 F 开始
-l 在本地文件系统中创建存档
-L 在写入 N*1024 个字节后暂停,等待更换磁盘
-m 当从一个档案中恢复文件时,不使用新的时间标签
-M 建立多卷存档,以便在几个磁盘中存放
-N 仅存储时间较新的文件
-o 以 V7 格式存档,不用 ANSI 格式
-O 将文件展开到标准输出
-p 展开所有保护信息
-P 不要从文件名中去除 '/'
-R 显示信息时同时显示存档中的记录数
-s 展开以后使所有文件属于同一所有者
-S 高效处理
-T 从文件中得到要展开或要创建的文件名
-v 详细显示处理的文件
-V 为存档指定卷标
-w 每个操作都要求确认
-W 写入存档后进行校验
-X 从指定文件中读入不想包含的文件的列表
-y 用 bzip2 对存档压缩或解压
-Z 用 compress 对存档压缩或解压
-z 用 gzip 对存档压缩或解压
# 将所有.txt的文件打包为 txt.tar
tar -cf txt.tar *.txt
# 追加test.txt到 txt.tar
tar -rf txt.tar test.txt
# 更新txt.tar中的test.txt
tar -uf txt.tar test.txt
# 列出txt.tar包中所有文件
tar -tf txt.tar
# 解压txt.tar包中所有文件
tar -xf txt.tar