Linux中tar命令的使用详解
基本语法结构
tar [主操作选项] [辅助选项] [文件或目录]
主操作选项是必须指定的,用于定义tar的行为(如打包、解压等),而辅助选项则根据需要选择性添加。
主操作选项
-c:创建新的归档文件,用于打包多个文件或目录。-x:从归档中提取文件,即解压。-t:列出归档内容,查看其中包含哪些文件。-r:将新文件追加到现有归档末尾。-u:仅更新归档中比当前版本更旧的文件。
注意:以上主选项在一条命令中只能出现一个,不能同时存在多个。
常用辅助选项
-z:使用gzip压缩或解压,生成.tar.gz或.tgz格式。-j:使用bzip2压缩或解压,生成.tar.bz2格式。-J:使用xz压缩或解压,生成.tar.xz格式。-v:显示处理过程中的详细信息,便于调试。-f:指定归档文件名,必须紧跟其后,不可省略。-p:保留原始文件的权限属性。-C:解压时切换到指定目录,改变工作路径。--exclude:在打包过程中排除特定文件或目录。-O:将文件输出到标准输出流,不写入磁盘。
典型用例
# 打包所有.jpg文件为一个归档
tar -cvf images.tar *.jpg
# 使用gzip压缩打包
tar -czvf images.tar.gz *.jpg
# 使用bzip2压缩打包
tar -cjvf images.tar.bz2 *.jpg
# 使用xz压缩打包
tar -cJvf images.tar.xz *.jpg
# 列出归档内容
tar -tvf images.tar.gz
# 解压归档
tar -xvf images.tar.gz
# 解压到指定目录
tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java
常见压缩格式对应解压命令
.tar→tar -xvf file.tar.gz→gunzip file.gz或gzip -d file.gz.tar.gz/.tgz→tar -xzf file.tar.gz.bz2→bunzip2 file.bz2或bzip2 -d file.bz2.tar.bz2→tar -xjf file.tar.bz2.xz→xz -d file.xz.tar.xz→tar -xJf file.tar.xz.rar→unrar e file.rar.zip→unzip file.zip
高级技巧与注意事项
当使用绝对路径进行打包时,tar会自动去除根路径前缀(如/home/user/file变成home/user/file),这可能导致解压后路径混乱。若需保持原路径结构,可使用-P选项。
使用-C参数可在解压时指定目标目录,例如:
tar -xvf archive.tar -C /opt/app
若只想解压归档中的某一个文件,可以直接指定路径:
tar -xvf config.tar.gz etc/passwd
通过--exclude可以跳过不需要的文件或目录,例如:
tar --exclude='backup/*' -czvf project.tar.gz ./src
查看帮助文档
运行以下命令获取完整说明:
tar --help
或查看手册页:
man tar