详解Linux命令--tar

tar 命令是Linux中最常用的命令之一,用于打包和解包文件。本文将详细介绍tar命令的用法,并给出具体的示例。

1. 基本语法

tar的基本语法如下:

tar [options] [file...]
  • [options]:可选参数,用于控制打包或解包行为。
  • [file...]:要打包或解包的文件名。

2. 常用选项

2.1 -c

创建一个新的归档文件。

示例:

创建名为archive.tar的新归档文件:

tar -c archive.tar file1 file2

2.2 -x

从归档文件中提取文件。

示例:

archive.tar归档文件中提取文件:

tar -xvf archive.tar

2.3 -t

列出归档文件中的内容。

示例:

列出archive.tar归档文件中的内容:

tar -tvf archive.tar

2.4 -r

将文件添加到已存在的归档文件中。

示例:

file3添加到archive.tar归档文件中:

tar -rvf archive.tar file3

2.5 -u

更新归档文件中的文件。

示例:

更新archive.tar归档文件中的文件file1

tar -uvf archive.tar file1

2.6 -a

使用归档文件的后缀来选择压缩方式。

示例:

使用.tar.gz后缀创建压缩归档文件:

tar -caf archive.tar.gz file1 file2

2.7 -z

使用gzip压缩归档文件。

示例:

使用gzip压缩创建名为archive.tar.gz的归档文件:

tar -czvf archive.tar.gz file1 file2

2.8 -j

使用bzip2压缩归档文件。

示例:

使用bzip2压缩创建名为archive.tar.bz2的归档文件:

tar -cjvf archive.tar.bz2 file1 file2

2.9 -J

使用xz压缩归档文件。

示例:

使用xz压缩创建名为archive.tar.xz的归档文件:

tar -cJvf archive.tar.xz file1 file2

2.10 -f

指定归档文件名。

示例:

指定归档文件名为archive.tar

tar -cvf archive.tar file1 file2

2.11 -v

详细模式,显示打包或解包的过程。

示例:

详细模式创建名为archive.tar的归档文件:

tar -cvvf archive.tar file1 file2

2.12 -p

保留文件权限。

示例:

保留文件权限创建名为archive.tar的归档文件:

tar -cpvf archive.tar file1 file2

2.13 -P

允许使用绝对路径。

示例:

允许使用绝对路径创建名为archive.tar的归档文件:

tar -cpvf archive.tar /path/to/file1 /path/to/file2

2.14 -m

保留符号链接的目标。

示例:

保留符号链接的目标创建名为archive.tar的归档文件:

tar -cpvmf archive.tar file1 file2

2.15 -X

指定文件列表,只打包列表中的文件。

示例:

使用files.lst文件中的文件列表创建名为archive.tar的归档文件:

tar -cpvf archive.tar -X files.lst

2.16 -W

验证文件的校验和。

示例:

验证文件的校验和,创建名为archive.tar的归档文件:

tar -cpWvf archive.tar file1 file2

2.17 -k

在解包时保留原有文件。

示例:

在解包archive.tar时保留原有文件:

tar -xvkf archive.tar

2.18 -R

解包时不覆盖已有文件。

示例:

解包archive.tar时不覆盖已有文件:

tar -xRvf archive.tar

2.19 --directory=DIR

在指定目录中创建归档文件。

示例:

/backup目录中创建名为archive.tar的归档文件:

tar --directory=/backup -cvf archive.tar file1 file2

2.20 --exclude=PATTERN

排除匹配模式的文件。

示例:

排除名为temp*的文件,创建名为archive.tar的归档文件:

tar -cvf archive.tar --exclude=temp* file1 file2

2.21 --exclude-from=FILE

从指定文件中读取排除模式。

示例:

exclude.lst文件中读取排除模式,创建名为archive.tar的归档文件:

tar -cvf archive.tar --exclude-from=exclude.lst file1 file2

2.22 --no-overwrite-dir

不覆盖目录。

示例:

不覆盖目录,创建名为archive.tar的归档文件:

tar -cvf archive.tar --no-overwrite-dir file1 file2

2.23 --version

显示版本信息。

示例:

显示tar命令的版本信息:

tar --version

2.24 --help

显示帮助信息。

示例:

显示tar命令的帮助信息:

tar --help

3. 实战案例

3.1 创建归档文件

创建名为archive.tar的新归档文件,包含file1file2

tar -cvf archive.tar file1 file2

3.2 从归档文件中提取文件

archive.tar归档文件中提取文件:

tar -xvf archive.tar

3.3 列出归档文件中的内容

列出archive.tar归档文件中的内容:

tar -tvf archive.tar

3.4 将文件添加到已存在的归档文件

file3添加到archive.tar归档文件中:

tar -rvf archive.tar file3

3.5 更新归档文件中的文件

更新archive.tar归档文件中的文件file1

tar -uvf archive.tar file1

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

使用gzip压缩创建名为archive.tar.gz的归档文件:

tar -czvf archive.tar.gz file1 file2

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

使用bzip2压缩创建名为archive.tar.bz2的归档文件:

tar -cjvf archive.tar.bz2 file1 file2

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

使用xz压缩创建名为archive.tar.xz的归档文件:

tar -cJvf archive.tar.xz file1 file2

3.9 保留文件权限创建归档文件

保留文件权限创建名为archive.tar的归档文件:

tar -cpvf archive.tar file1 file2

3.10 允许使用绝对路径创建归档文件

允许使用绝对路径创建名为archive.tar的归档文件:

tar -cpvf archive.tar /path/to/file1 /path/to/file2

3.11 保留符号链接的目标创建归档文件

保留符号链接的目标创建名为archive.tar的归档文件:

tar -cpvmf archive.tar file1 file2

3.12 使用文件列表创建归档文件

使用files.lst文件中的文件列表创建名为archive.tar的归档文件:

tar -cpvf archive.tar -X files.lst

3.13 在指定目录中创建归档文件

/backup目录中创建名为archive.tar的归档文件:

tar --directory=/backup -cvf archive.tar file1 file2

3.14 排除特定文件创建归档文件

排除名为temp*的文件,创建名为archive.tar的归档文件:

tar -cvf archive.tar --exclude=temp* file1 file2

3.15 解包时不覆盖已有文件

解包archive.tar时不覆盖已有文件:

tar -xRvf archive.tar

3.16 从指定文件中读取排除模式创建归档文件

exclude.lst文件中读取排除模式,创建名为archive.tar的归档文件:

tar -cvf archive.tar --exclude-from=exclude.lst file1 file2

请注意,某些命令的选项和语法可能会因不同的Linux发行版和版本而略有不同,请根据实际情况调整命令的具体细节。

linux tar命令详解 tar命令 tar能为文件和目录创建档案。利用tar,用户能为某一特定文件创建档案(备份文件),也能在档案中改动文件,或向档案中加入新的文件。tar最初被用来在磁带上创建档案,目前,用户能在所有设备上创建档案,如软盘。利用tar命令,能把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。 语法:tar [主选项+辅选项] 文件或目录 使用该命令时,主选项是必须要有的,他告诉tar要做什么事情,辅选项是辅助使用的,能选用。 主选项: c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。 r 把要存档的文件追加到档案文件的未尾。例如用户已作好备份文件,又发现更有一个目录或是一些文件忘记备份了,这时能使用该选项,将忘记的目录或文件追加到备份文件中。 t 列出档案文件的内容,查看已备份了哪些文件。 u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中未找到要更新的文件,则把他追加到备份文件的最后。 x 从档案文件中释放文件。 辅助选项: b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。 f 使用档案文件或设备,这个选项通常是必选的。 k 保存已存在的文件。例如我们把某个文件还原,在还原的过程中,遇见相同的文件,不会进行覆盖。 m 在还原文件时,把所有文件的修改时间设定为目前。 M 创建多卷的档案文件,以便在几个磁盘中存放。 v 周详报告tar处理的文件信息。如无此选项,tar不报告文件信息。 w 每一步都需求确认。 z 用gzip来压缩/解压缩文件,加上该选项后能将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。 Linux下的压缩文件剖析 对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在视窗系统下最常见的压缩文件就只有两种,一是,zip,另一个是.rap。可是Linux就不同了,他有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也能在Linux下使用,不过在Linux使用.zip和.rar的人就太少了。本文就来对这些常见的压缩文件进行一番小结,希望你下次遇见这些文件时不至于被搞晕:)   在具体总结各类压缩文件之前呢,首先要 弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于Linux中的非常多压缩程式只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另他的工具将这一大堆文件先打成一个包,然后再就原来的压缩程式进行压缩。   Linux下最常用的打包程式就是tar了,使用tar程式打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就能用其他的程式来进行压缩了,所以首先就来讲讲tar命令的基本用法:   tar命令的选项有非常多(用man tar能查看到),但常用的就那么几个选项,下面来举例说明一下:   # tar -cf all.tar *.jpg   这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。   # tar -rf all.tar *.gif   这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif   这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。   # tar -tf all.tar   这条命令是列出all.tar包中所有文件,-t是列出文件的意思   # tar -xf all.tar   这条命令是解出all.tar包中所有文件,-t是解开的意思   以上就是tar的最基本的用法。为了方便用户在打包解包的同时能压缩或解压文件,tar提供了一种特别的功能。这就是tar能在打包或解包的同时调用其他的压缩程式,比如调用gzip、bzip2等。   1) tar调用gzip   gzip是GNU组织研发的一个压缩程式,.gz结尾的文件就是gzip压缩的结果。和gzip相对的解压程式是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:   # tar -czf all.tar.gz *.jpg   这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz   # tar -xzf all.tar.gz   这条命令是将上面产生的包解开。   2) tar调用bzip2   bzip2是个压缩能力更强的压缩程式,.bz2结尾的文件就是bzip2压缩的结果。和bzip2相对的解压程式是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:   # tar -cjf all.tar.bz2 *.jpg   这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2   # tar -xjf all.tar.bz2   这条命令是将上面产生的包解开。 3)tar调用compress   compress也是个压缩程式,不过好象使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是bzip2压缩的结果。和compress相对的解压程式是uncompress。tar中使用-Z这个参数来调用gzip。下面来举例说明一下:   # tar -cZf all.tar.Z *.jpg   这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成一个uncompress压缩过的包,包名为all.tar.Z   # tar -xZf all.tar.Z   这条命令是将上面产生的包解开   有了上面的知识,你应该能解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:   1)对于.tar结尾的文件   tar -xf all.tar   2)对于.gz结尾的文件   gzip -d all.gz   gunzip all.gz   3)对于.tgz或.tar.gz结尾的文件   tar -xzf all.tar.gz   tar -xzf all.tgz   4)对于.bz2结尾的文件   bzip2 -d all.bz2   bunzip2 all.bz2   5)对于tar.bz2结尾的文件   tar -xjf all.tar.bz2   6)对于.Z结尾的文件   uncompress all.Z   7)对于.tar.Z结尾的文件   tar -xZf all.tar.z   另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压他们:   1)对于.zip   linux下提供了zip和unzip程式,zip是压缩程式,unzip是解压程式。他们的参数选项非常多,这里只做简单介绍,依旧举例说明一下其用法:   # zip all.zip *.jpg   这条命令是将所有.jpg的文件压缩成一个zip包 # unzip all.zip   这条命令是将all.zip中的所有文件解压出来   2)对于.rar   要在linux下处理.rar文件,需要安装RAR for Linux,能从网上下载,但要记住,RAR for Linux 不是免费的;然后安装:   # tar -xzpvf rarlinux-3.2.0.tar.gz   # cd rar   # make   这样就安装好了,安装后就有了rar和unrar这两个程式,rar是压缩程式,unrar是解压程式。他们的参数选项非常多,这里只做简单介绍,依旧举例说明一下其用法:   # rar a all *.jpg   这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程式会将.rar 扩展名将自动附加到包名后。   # unrar e all.rar   这条命令是将all.rar中的所有文件解压出来   到此为至,我们已介绍过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、 zip、unzip、rar、unrar等程式,你应该已能够使用他们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar这10种压缩文件进行解压了,以后应该不必为下载了一个软件而不知道怎么在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。   本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、 unzip、rar、unrar等程式,及怎么使用他们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar这10种压缩文件进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值