linux命令之tar 解压 压缩

简介: 本篇内容记录了有关tar 解压 压缩的相关操作。

tar


tar(全称:tape archive )命令用于备份文件。tar 是用来创建或者还原备份文件的工具程序,它可以加入,解开备份文件内的文件。tar linux说明


  • 语法


tar [主选项 + 辅选项] 文件或目录


使用该命令时,主选项必须有,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。


主选项:一条命令下面的5个参数只能有一个,不能同时存在

-c: --create 新建一个压缩文档,即打包

-x: --extract,--get解压文件

-t: --list,查看压缩文档里的所有内容

-r:--append 向压缩文档里追加文件

-u:--update 更新原压缩包中的文件


辅助选项:


-z:是否同时具有gzip的属性?即是否需要用gzip压缩或解压?一般格式为xxx.tar.gz或xx.tgz

-j:是否同时具有bzip2的属性?即是否需要用bzip2压缩或解压?一般格式为xx.tar.bz2

-v:显示操作过程!这个参数很常用

-f:使用文档名,注意,在f之后要立即接文档名,不要再加其他参数!

-C:切换到指定目录

--exclude FILE:在压缩过程中,不要将FILE打包


  • 实例


  1. 打包


$ tar -cvf img.tar img1 img2


  1. 不解压查看
$ tar -tvf img.tar


  1. 解压


$ tar -xvf ./img.tar


  1. 只解压某个目录


$ tar -xvf ./img.tar img1


  1. 更新压缩包


给img1文件下新建一个文件img3.txt,然后更新img.tar


$ tar -cvf img.tar img1 img2
# 给img1增加了一张照片,现在用下面命令更新img.tar
$ tar -uvf img.tar img1


  1. 追加


$ tar -cf img.tar img1 img2
# img.tar里追加一个文件夹img3
$ tar -rf img.tar img3


  1. -C 参数


-C 参数非常有用,改变文件目录,多层级时使用。 -C, --directory=DIR ( change to directory DIR )


使用了-C 参数改变目录为 -C 后面的目录,不管是在打包还是解压都很有用。


语法:tar temp.tar -C fileDirfile


$ cd temp
$ ls
img1  img2  img3
$ tar -cvf img.tar temp/*
# 这样打包会将temp目录也打包进去,使用下面带有-C参数的命令可以去掉路径信息
$ tar -cvf img.tar -C temp .


解压 img.tar 到当前目录下的 temp 目录


$ tar -xvf img.tar -C temp


附录:


$ tar -cvf image.tar /home/usr/image
tar: Removing leading '/' from members names
/home/usr/image


该命令可以将/home/usr/image文件打包到当前目录下的image.tar中,需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr/,根目录'/'被自动去掉了)一并被压缩进来。使用tar命令解压缩后会出现以下情况:


$ tar -xvf image.tar


解压缩后的文件名不是想象中的image,而是home/usr/image。


$ tar -cvf image.tar -C /home/usr/ image


该命令中的-C dir参数,将tar的工作目录从当前目录改为/home/usr/,将image文件(不带绝对路径)压缩到image.tar中。注意:-C dir参数的作用在于改变工作目录,其有效期为该命令中下一次-C dir参数之前。


使用tar的-C dir参数,同样可以做到在当前目录/root下将文件解压缩到其他目录,例如:


$ tar -xvf image.tar -C /home/user


而tar不用-C dir参数时是无法做到的:


$ tar -xvf image.tar /root
tar: /tmp/file: Not found in archive
tar: Error exit delayed from previous errors
相关文章
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
1天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
1天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
2天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
2天前
|
Linux
【Linux】常用命令
【Linux】常用命令
21 0
|
2天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
16 0
Linux 网络操作命令Telnet
|
3天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
30 0
|
3天前
|
Linux 开发工具 数据安全/隐私保护
Linux(19)常用解压命令记录
Linux(19)常用解压命令记录
9 0
|
5天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
17 0
|
7天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
16 0