Linux 解压指令

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

参考资料

posted @ 2024-03-17 17:24  MElephant  阅读(932)  评论(0编辑  收藏  举报