zip / unzip
常见格式
-d dir
:指定解压缩后的目标目录-l
:列出 zip 文件中的内容,但不解压缩(List)-q
:安静模式,不显示解压缩过程(Quiet)-o
:覆盖已存在的文件而不询问(Overwrite)-n
:不覆盖已存在的文件(Never overwrite)-x
:排除某一文件(eXclude)
查看内容
unzip -l root.zip # 列出压缩包中的文件
解压
unzip root.zip # 解压到当前目录下, 但是不创建目录
unzip root.zip -d ./root # 解压到 ./root
unzip -o root.zip -d ./root # 覆盖已存在的文件
unzip -n root.zip -d ./root # 不覆盖已存在的文件
unzip -x README root.zip # 解压时排除 README 文件
tar
常见格式
-c
:创建新的存档文件(Create)-x
:从存档文件中提取文件(eXtract)-t
:列出存档文件中的内容(lisT)-v
:显示 tar 命令执行的详细信息(Verbose)-f
:指定存档文件的名称(File)-z
:在创建或提取存档文件时使用 gzip 压缩算法来进行压缩或解压缩(gzip)-j
:在创建或提取存档文件时使用 bzip2 压缩算法来进行压缩或解压缩(bzip2)-C
:指定 tar 命令的工作目录(Change directory)
查看内容
tar -tvf root.tar # 查看压缩包内容
解压
tar -xvf root.tar # 按照实际压缩的格式解压到当前目录下(f 必须置于 xv 后)
tar -xvf root.tar -C ./root # 解压到 ./root 下(./root 一定要存在)
# 如果存档文件是经过 gzip、bzip2 或 xz 压缩的,则必须指定相应的压缩算法来解压存档文件
tar -xzvf root.tar.gz
tar -xjvf root.tar.bz2
tar -xJvf root.tar.xz
上述解压操作均为覆盖模式。
压缩
tar -cvf root.tar dir1/ dir2/ file... # 将多个文件/目录压缩为 root.tar
tar -cvf root.tar ./* --exclude '*.o' # 除 .o 外的其他文件压缩为 root.tar
# 压缩存档文件
tar -czvf root.tar.gz * # 在创建 tar 存档文件时使用 gzip 压缩新创建的存档文件
tar -cjvf root.tar.bz2 * # 在创建 tar 存档文件时使用 bzip2 压缩新创建的存档文件
tar -cJvf root.tar.xz * # 在创建 tar 存档文件时使用 xz 压缩新创建的存档文件
分卷压缩
# 将当前目录下的所有文档分卷压缩, 每个压缩报的大小不超过 1MB
tar -czvf - ./* | split -b 1m -d - root.tar.gz.
上述命令将使用管道符将压缩的存档文件发送到
split
命令中,并将其分割成多个 1MB 大小的文件,每个部分的文件名以root.tar.gz.
开头,并以数字结尾(如 root.tar.gz.00, root.tar.gz.01)等。
# 合并后解压
cat root.tar.gz.* > root.tar.gz
tar -xzvf root.tar.gz