tar归档

有的时候我们需要对电脑中的文件进行整理,比如电影、音乐、小说这些文件,我们要将其放到单独对应的文件夹中去,类似的这种操作在Linux中称为归档,将一些比较重要的文件打包在一起。进行归档的命令是——tar。

tar——tape archive:磁带档案

tar [OPTION...] [FILE]...

主选项:

-c:创建档案文件

-x:释放档案文件的内容

-t:查看档案文件中包含的文件

-u/-r:向档案文件中添加新的文件

辅助选项:

-f:指定档案的文件的路径

-C:在释放档案文件中的内容时,指定释放的路径

-z:在创建档案文件时,调用gzip进行压缩

-j:在创建档案文件时,调用bzip2进行压缩

-J:在创建档案文件时,调用xz进行压缩(可能不支持)

--exclude:在释放档案文件时,排除某个文件;

-k:在释放档案文件时,不会覆盖同名文件;

注意:c、x、t这三个选项是不能同时出现的,因为操作只能有一个,不能同时压缩、解压缩和查看文件。

下面对每个选项进行举例:

只进行打包:

[[email protected] 20170607yasuo]# cd ..
[[email protected] blog]# tar -cvf ./20170607yasuo.tar ./20170607yasuo/
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
[[email protected] blog]# ls
20170607yasuo  20170607yasuo.tar
[[email protected] blog]#

在这个例子中仅仅只是进行打包,使用到了“c”选项,在后头加上的“v”是将打包的详细过程显示出来,再后头有个“f”选项,这个是用来告诉“tar”命令将打包后的文件存放到哪里,在这个参数的后面要跟上要保存到的路径和文件名。

注意:当像“cvf”这样的选项连用的时候,用来指定路径的“f”要放在最后,否则会出现意想不到的错误。

在进行打包的时候可以同时对要打包的文件进行压缩(压缩的详细内容可以查看上一篇博客),进行“gzip”压缩使用“-z”选项:

[[email protected] blog]# tar -zcvf ./20170607yasuo.tar.gz ./20170607yasuo/
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
[[email protected] blog]# ls
20170607yasuo  20170607yasuo.tar  20170607yasuo.tar.gz
[[email protected] blog]#

进行“bzip2”压缩使用使用“-j”选项:

[[email protected] blog]# tar -jcvf ./20170607yasuo.tar.bz2 ./20170607yasuo/
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
[[email protected] blog]# ls
20170607yasuo      20170607yasuo.tar.bz2
20170607yasuo.tar  20170607yasuo.tar.gz
[[email protected] blog]#

进行“xz”压缩使用“-J”选项:

[[email protected] blog]# tar -Jcvf ./20170607yasuo.tar.xz ./20170607yasuo/
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
[[email protected] blog]# ls
20170607yasuo      20170607yasuo.tar.bz2  20170607yasuo.tar.xz
20170607yasuo.tar  20170607yasuo.tar.gz
[[email protected] blog]#

下面进行档案释放的演示:

首先建立一个“20170607”用来存放释放出来的文件

[[email protected] blog]# mkdir 20170607
[[email protected] blog]# ls
20170607       20170607yasuo.tar      20170607yasuo.tar.gz
20170607yasuo  20170607yasuo.tar.bz2  20170607yasuo.tar.xz
[[email protected] blog]#

然后将刚才打包的文件释放到这个文件夹中:

[[email protected] blog]# tar -xvf 20170607yasuo.tar -C ./20170607
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
[[email protected] blog]# cd 20170607
[[email protected] 20170607]# ls
20170607yasuo
[[email protected] 20170607]# ls 20170607yasuo/
testbzip.bz2  testgzip.gz  testxz.xz
[[email protected] 20170607]#

注意:在释放归档的时候,使用选项进行压缩的归档包要使用同样的选项进行解开,比如使用

tar -zcvf ./20170607yasuo.tar.gz ./20170607yasuo/

命令进行的归档,就要使用“-z”选项进行释放(建立“20170607a”文件来存放释放出来的文件):

[[email protected] blog]# mkdir 20170607a
[[email protected] blog]# tar -zxvf 20170607yasuo.tar.gz -C ./20170607a
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
[[email protected] blog]# cd 20170607a/
[[email protected] 20170607a]# ls
20170607yasuo
[[email protected] 20170607a]#

使用其他压缩选项进行的归档与此类似,就不再赘述。

当我们创建了归档文件后,可以通过“-t”选项来查看其中包含的文件:

[[email protected] blog]# tar -tf 20170607yasuo.tar
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
[[email protected] blog]#

在创建了归档包之后如果出现了一个新的文件也要放到这个归档包中,那么有两个方法,第一种是删掉归档包,然后重新建一个;第二种方法是使用“-r”命令:

先创建一个临时文件:

[[email protected] blog]# mktemp linshiXXX
linshiFwg
[[email protected] blog]# ls
20170607   20170607yasuo      20170607yasuo.tar.bz2  20170607yasuo.tar.xz
20170607a  20170607yasuo.tar  20170607yasuo.tar.gz   linshiFwg

然后将这个临时文件通过tar命令的“-r”选项添加到归档包中:

[[email protected] blog]# tar -rf 20170607yasuo.tar linshiFwg 
[[email protected] blog]# tar -tf 20170607yasuo.tar
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
linshiFwg
[[email protected] blog]#

和这种添加归档包的操作类似还有更新,如果在归档包中的文件是一个需要被替换的文件,就可以使用“-u”选项来使用新的文件来替换归档包中的文件,比如:

使用上一个例子中的文件“linshiFwg”,通过查看命令“cat”能够

[[email protected] blog]# cat linshiFwg 
[[email protected] blog]#

然后使用重定向来将一些内容写入到这个文件中:

[[email protected] blog]# echo "test" > linshiFwg 
[[email protected] blog]# cat linshiFwg 
test
[[email protected] blog]#

当进行到这一步,此时这个文件中已经有了内容,而归档包中的那个还是空空的文件,此时使用“-u”命令将新的文件更新到归档包中:

[[email protected] blog]# tar -uf 20170607yasuo.tar linshiFwg 
[[email protected] blog]# mkdir 20170607b
[[email protected] blog]# tar -xvf 20170607yasuo.tar -C ./20170607b
./20170607yasuo/
./20170607yasuo/testbzip.bz2
./20170607yasuo/testgzip.gz
./20170607yasuo/testxz.xz
linshiFwg
linshiFwg
[[email protected] blog]# cd 20170607b
[[email protected] 20170607b]# ls
20170607yasuo  linshiFwg
[[email protected] 20170607b]# cat linshiFwg 
test
[[email protected] 20170607b]#

此时再使用“cat”命令查看文件中内容,发现文件中的内容已经变成了新的内容。

时间: 2024-12-27 10:43:53

tar归档的相关文章

liunx的tar归档命令

鉴于前面所学习的zip和uzip命令. 多一个tar,归档. tar -cvf tar -xvf tar -xzvf 创建归档 释放归档 创建并压缩归档.

tar 归档中找不到

今天在解压tar.gz包时遇到的错误: 刚开始以为是路径的问题, 然后感觉是tar.gz包的问题, 后来查了一下才知道, 记录一下: 一定要加上那个-C   参数 表示更换目录的意识 -C    --directory DIR change to directory DIR tar -zxvf VMwareTools-9.6.2-1688356.tar.gz  -C /tmp

tar归档报错tar: Removing leading `/‘ from member names

今天用tar命令归档文件的时候一直提示"tar: Removing leading `/' from member names" [[email protected] tmp]# tar -cvf test.tar /tmp/* tar: Removing leading `/' from member names /tmp/123.tar /tmp/1.txt /tmp/2.tar /tmp/P tar: /tmp/test.tar: file is the archive; not

9. 文件系统——文件的压缩、解压缩、归档及底层复制命令(gzip bzip2 xz tar dd)

一.压缩和解压缩文件 先来看一个例子,现在要将如下几个字符串存储到硬盘上: abcdef,abc,def,mnabc,mndef 现在可以为这几个字符串设置编号,abc编号为1,def编号为2,mn的编号为3,于是上述字符串可以存为如下形式: abcdef,1,2,mn1,32 这个过程就是文件压缩的过程,而解压缩的过程,就是将按照编号存储的字符串还原成完整的字符串.故压缩就是将重复的内容使用符号加以替代.不同的压缩方法会采用不同的压缩算法,例如上述字符串可以将abc作为编号1,也可以将abcd

linux专题一之文件归档和压缩(tar、file、zip)

 本文主要从以下几个方便来说明文件的归档和压缩,同时比较几种不同压缩方法的压缩比率及特点. 文件归档命令tar,tar.gz源码包的安装管理 创建tar包-解压-查询tar包内容 zip命令的用法 为什么要压缩?      1.     方便使用.查询.阅读      2.     易于管理 (批量删除文件) 如图:主机A要跟主机B传输一个大小为10G的文件估计传送100s.   如果直接传输会大量的占用流量带宽.导致公司的内网访问速度缓慢. 传输前压缩-->传输后解压 我把10G的文件压缩成5

tar gz bz2 xz zip z归档、压缩、解压缩

压缩.解压缩命令 压缩格式:gz, bz2, xz, zip, Z 压缩算法:算法不同,压缩比也会不同: compress: FILENAME.Z uncompress gzip: .gz gzip /PATH/TO/SOMEFILE:压缩完成后会删除原文件 -d: -#:1-9,指定压缩比,默认是6: gunzip: gunzip /PATH/TO/SOMEFILE.gz: 解压完成后会删除原文件 zcat /PATH/TO/SOMEFILE.gz: 不解压的情况,查看文本文件的内容 bzip

Linux编程 8 (挂载mount,查看磁盘df du,搜索grep,压缩zgip,归档tar)

一. 挂载存储媒体 linux文件系统将所有的磁盘都并入一个虚拟目录下,当使用新的存储媒体之前,需要把它放到虚拟目录下,这项工作称为挂载(mounting) 1.1 mount 命令 在linux上用来挂载媒体的命令叫做mount. 默认情况下,mount命令会输出当前系统上的挂载的设备列表. 1.2 umont 要除移可移动设备时,不能直接从系统上移除,应该先卸载.使用umont命令(以后在演示). 二. 查看磁盘空间 在linux系统中,监测系统磁盘使用情况很重要.知道还有多少空间供程序使用

谢烟客---------Linux之压缩解压缩及归档工具的使用

压缩工具 compress/uncompress:  .Z结尾 gzip/gunzip: .gz结尾 bzip2/bunzip2: .bz2结尾 xz/unxz: .xz后缀 压缩及归档工具: zip/unzip 归档工具: tar,cpio(特殊场景) gzip/gunzip/zcat命令 1.LZ77压缩算法 2.压缩比不高:快速.高效 3.压缩/解压缩后删除原文件,为了节约空间 4.纯文本压缩,二进制压缩意义不大 5.压缩目录,-r gzip [OPTIONS...] FILE     -

linux文件压缩与归档工具

1.compress/uncompress  .Z 格式 compress [-dfvcVr] [-b maxbits] [file -] -d: 解压缩,相当于 -c: 结果输出至标准输出,不删除原文件 compress -c  file > file.Z -v: 显示详情 uncompress 解压缩 -c -d file.Z > file   ->  解压,但是保持源文件 zcat file.Z >file 2. gzip/gunzip     .gz 格式 gzip [OP