Linux/Unix系统指令:(tar压缩和解压)

tar 是一个在Linux和Unix系统中用于创建和处理归档文件的命令。

下面是tar命令的详细用法,包括它的所有常用选项和一些示例。

基本语法

bash 复制代码
tar [选项] [归档文件] [文件或目录]

常用选项

基本操作
  • -c:创建一个新的归档文件(create)。
  • -x:解压归档文件(extract)。
  • -f:指定归档文件的名称(file)。这是一个必选项,需要紧跟在创建或解压命令后面。
压缩选项
  • -z:使用gzip压缩归档文件(compress with gzip)。
  • -j:使用bzip2压缩归档文件(compress with bzip2)。
  • -J:使用xz压缩归档文件(compress with xz)。
显示选项
  • -v:显示操作过程中的文件信息(verbose)。
  • -t:列出归档文件的内容(list)。
其他常用选项
  • -C:指定解压缩的目标目录(change to directory)。
  • -r:向现有的归档文件中添加文件(append)。
  • -u:更新现有归档文件中的文件(update)。
  • -A:将归档文件合并(concatenate archives)。

示例

创建归档文件

创建一个包含目录和文件的归档文件:

bash 复制代码
tar -cvf archive.tar file1 file2 dir1

使用gzip压缩创建归档文件:

bash 复制代码
tar -czvf archive.tar.gz file1 file2 dir1

使用bzip2压缩创建归档文件:

bash 复制代码
tar -cjvf archive.tar.bz2 file1 file2 dir1

使用xz压缩创建归档文件:

bash 复制代码
tar -cJvf archive.tar.xz file1 file2 dir1
解压归档文件

解压不压缩的归档文件:

bash 复制代码
tar -xvf archive.tar

解压gzip压缩的归档文件:

bash 复制代码
tar -xzvf archive.tar.gz

解压bzip2压缩的归档文件:

bash 复制代码
tar -xjvf archive.tar.bz2

解压xz压缩的归档文件:

bash 复制代码
tar -xJvf archive.tar.xz
列出归档文件内容

列出不压缩归档文件的内容:

bash 复制代码
tar -tvf archive.tar

列出gzip压缩归档文件的内容:

bash 复制代码
tar -tzvf archive.tar.gz
指定解压目录

将归档文件解压到指定目录:

bash 复制代码
tar -xzvf archive.tar.gz -C /path/to/destination
向现有归档文件添加文件

向现有的归档文件中添加文件:

bash 复制代码
tar -rvf archive.tar newfile
更新现有归档文件中的文件

更新现有的归档文件:

bash 复制代码
tar -uvf archive.tar updatedfile
合并归档文件

合并多个归档文件:

bash 复制代码
tar -Avf archive1.tar archive2.tar

更多选项

  • --delete:从归档文件中删除文件(注意:此选项可能不被所有tar版本支持)。
bash 复制代码
tar --delete -f archive.tar unwantedfile
  • --exclude:在创建归档文件时排除指定文件或目录。
bash 复制代码
tar --exclude='*.log' -cvf archive.tar dir1
  • -P:保留文件的绝对路径。
bash 复制代码
tar -cvPf archive.tar /absolute/path/to/file
  • -p:保留文件权限。
bash 复制代码
tar -xvpf archive.tar
  • --strip-components:在解压时去掉路径的指定层级。
bash 复制代码
tar -xvzf archive.tar.gz --strip-components=1
相关推荐
Ruiery14 分钟前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
欧米欧33 分钟前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery44 分钟前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
qetfw2 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
逆风的蚂蚁3 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
沫璃染墨7 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
AI_Lab019 小时前
宝塔用了两年,有没有必要换成轻量方案?
linux·运维·服务器
by209999 小时前
Linux GDB 调试与 CGDB 使用
linux·运维·服务器·经验分享
星恒随风9 小时前
Linux网络编程:应用层协议究竟是什么?从网络计算器到TCP Socket抽象基类完整实现
linux·网络·笔记·tcp/ip
feng_you_ying_li12 小时前
linux之网络层
linux·运维·网络