欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

Linux命令之文件归档、压缩、解压缩tar,gzip,gunzip,bzip2,bunz

时间:2022-05-24 15:48:26 其他范文 收藏本文 下载本文

【导语】下面是小编为大家整理的Linux命令之文件归档、压缩、解压缩tar,gzip,gunzip,bzip2,bunz(共4篇),仅供参考,喜欢可以收藏与分享哟!

Linux命令之文件归档、压缩、解压缩tar,gzip,gunzip,bzip2,bunz

篇1:Linux命令之文件归档、压缩、解压缩tar,gzip,gunzip,bzip2,bunz

tar 建立档案文件

【语法】 tar [option] tarfile filename

【命令说明】

文件名必须紧跟在-f参数后,且作为参数的最后一项;

【参数说明】

-c 建立一个新的档案文件;

-f 指定档案文件名;

-r 往归档文件中追加文件;

-x 从档案文件中提取文件;

-v,-vv 显示进度信息;

-t 列出存档文件的信息(不提取);

-C 指定文件提取的目录;

-A 合并多个tar文件;

--totals 归档完成后,打印总归档字节数;

--delete 从归档文件中删除指定的文件;

--exclude 归档时,排除指定样式的文件;

-j 生成归档文件时,使用bunzip2格式进行压缩;

-z 生成归档文件时,使用gzip格式进行压缩;

--lzma 生成归档文件时,使用lzma格式进行压缩;

-a 生成归档文件时,根据扩展名自动进行压缩;

【一般用法】

#打tar包,名称为all.tar

$ tar -cvf all.tar *.text;

#追加文件b.doc

$ tar -rvf all.tar b.doc;

#列出归档文件中的内容

$ tar -tvf all.tar;

#提取归档文件中的全部文件

$ tar -xvf all.tar;

$ tar -xvf all.tar -C /opt/app/tool_dir;

#提取归档文件中的指定文件

$ tar -xvf all.tar file_one file_two

#合并两个tar文件

$ tar -Af file_one.tar file_two.tar

#删除指定的文件

$ tar -f all.tar --delete file_one file_two

#归档时,排除日志文件

$ tar -cf all.tar * --exclude ”*.log”

gzip/gunzip 进行压缩/解压缩

【语法】

gzip [options] file;

gunzip [options] file;

【命令说明】

gzip只能压缩单个文件,如果指定多个文件,则会生成多个单独的压缩文件;

gzip会在生成压缩文件后,删除源文件!!!!

gunzip会在解压缩完成后,删除源文件!!!

【参数说明】

-l,--list 列出压缩文件的属性信息;

--fast 指定最低压缩比;

--best 指定最高压缩比;

-n 指定压缩比(n为数字,且1<=n<=9);

-v 显示进度信息;

bzip2/bunzip2 进行压缩/解压缩

【语法】

bzip2 file;

bunzip2 file;

【命令说明】

bzip2通常能生成比gzip压缩比更高的文件;默认bzip2会删除源文件,可使用-k参数保留源文件;

【参数说明】

-k 保留源文件;

-n 指定压缩比(n为数字,且1<=n<=9);

zip/unzip 进行压缩/解压缩

【语法】 zip [options] file file dirs

【命令说明】

zip压缩/解压缩后,不会删除源文件;

【参数说明】

-r 递归;压缩目录时使用;

-l 列出压缩文件内容;

-d 从压缩文件中删除指定文件;

-u 更新压缩文件的内容;

【一般用法】

#压缩文件

$ zip all.zip file;

$ zip all.zip file_one file_two;

$ zip -r all.zip dir_name;

#更新压缩文件

$ zip all.zip -u log.text

#删除指定的内容

$ zip -d all.zip log.text;

#解压文件

$ unzip all.zip;

#列出压缩文件内容

$ unzip -l all.zip;

篇2:Linux系统tar、gzip、zip等压缩命令

【gzip/gunzip】

gzip是压缩命令,对应的gunzip是解压命令,使用时很简单,如下:

gzip file1 执行压缩,压缩后文件名为file1.gz

gunzip file1.gz 执行解压,解压后文件名为file1

注意:gzip/gunzip会删除源文件;并且只能处理文件不能处理目录,

【tar】

在LinuxUnix系统中很常用的打包命令,常用的参数如下:

-c: 创建打包文件

-x: 释放打包文件

-t: 列出打包文件的内容

-v: 列出处理的文件,-tv同时执行时会显示文件的详细信息,类似与ls -l的结果

-f: 指定目标文件

-z: 执行-c或-x同时执行gzip或gunzip命令

tar可以处理目录,并且不会删除源文件,例如:

tar -cvf /home/jack/dest.tar /home/jack/source 将/home/jack/source打包成/home/jack/dest.tar

tar -zcvf /home/jack/dest.tar.gz /home/jack/source 将/home/jack/source打包压缩成/home/jack/dest.tar.gz

tar -tvf /home/jack/dest.tar 查看/home/jack/dest.tar里面的内容

上面对应的犯过程为:

tar -xvf /home/jack/dest.tar

tar -zxvf /home/jack/dest.tar.gz

【zip/unzip】

默认情况下,windows与linux唯一通用的压缩格式就是zip,因此如果需要在windows与linux系统中传递文件,请压缩成zip格式,

zip不会删除源文件,同样可以压缩目录,例如:

zip file.zip file 压缩file文件为file.zip

zip -r folder.zip /home/jack/myf 压缩myf目录为folder.zip

unzip -r /home/jack/myf2 folder解压

【bzip2】

bzip2与gzip命令相似,但压缩打文件时压缩率非常高,但同样只能处理文件,另外可以使用-k参数指定不删除源文件,例如:

bzip2 test.log 执行压缩,压缩后文件名为test.log.bz2

bzip2 -d test.log.bz2 执行解压缩,-d表示解压缩

篇3:Python中使用tarfile压缩、解压tar归档文件示例

这篇文章主要介绍了Python中使用tarfile压缩、解压tar归档文件示例,本文直接给出解压和压缩代码示例,需要的朋友可以参考下

Python自带的tarfile模块可以方便读取tar归档文件,牛b的是可以处理使用gzip和bz2压缩归档文件tar.gz和tar.bz2,

与tarfile对应的是zipfile模块,zipfile是处理zip压缩的。请注意:os.system(cmd)可以使Python脚本执行命令,当然包括:tar -czf *.tar.gz *,tar -xzf *.tar.gz,unzip等,当我觉得这样尽管可以解决问题,但我觉得很业余。

使用tarfile压缩

代码如下:

import tarfile

#创建压缩包名

tar = tarfile.open(“/tmp/tartest.tar.gz”,“w:gz”)

#创建压缩包

for root,dir,files in os.walk(“/tmp/tartest”):

for file in files:

fullpath = os.path.join(root,file)

tar.add(fullpath)

tar.close

使用tarfile解压

代码如下:

def extract(tar_path, target_path):

try:

tar = tarfile.open(tar_path, “r:gz”)

file_names = tar.getnames()

for file_name in file_names:

tar.extract(file_name, target_path)

tar.close()

except Exception, e:

raise Exception, e

其中open的原型是:

代码如下:

tarfile.open(name=None, mode=‘r‘, fileobj=None, bufsize=10240, **kwargs)

mode的值有:

代码如下:

‘r‘ or ‘r:*‘  Open for reading with transparent compression (recommended).

‘r:‘  Open for reading exclusively without compression.

‘r:gz‘  Open for reading with gzip compression.

‘r:bz2‘  Open for reading with bzip2 compression.

‘a‘ or ‘a:‘  Open for appending with no compression. The file is created if it does not exist.

‘w‘ or ‘w:‘  Open for uncompressed writing.

‘w:gz‘  Open for gzip compressed writing.

‘w:bz2‘  Open for bzip2 compressed writing.

更多请参考:tarfile ― Read and write tar archive files

篇4:在Linux系统中使用tar命令压缩和解压文件的教程

linux中的tar命令

tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令,

其常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过了gzip或bzip算法进一步进行了压缩。

在本教程中我们会管中窥豹一下在linux桌面或服务器版本中使用tar命令来处理一些创建和解压归档文件的日常工作的例子。

使用tar命令

tar命令在大部分linux系统默认情况下都是可用的,所以你不用单独安装该软件。

tar命令具有两个压缩格式,gzip和bzip,该命令的“z”选项用来指定gzip,“j”选项用来指定bzip。同时也可以创建非压缩归档文件。

1.解压一个tar.gz归档

一般常见的用法是用来解压归档文件,下面的命令将会把文件从一个tar.gz归档文件中解压出来。

代码如下:

$ tar -xvzf tarfile.tar.gz

这里对这些参数做一个简单解释-

x - 解压文件

v - 冗长模式,在解压每个文件时打印出文件的名称。

z - 该文件是一个使用 gzip 压缩的文件。

f - 使用接下来的tar归档来进行操作。

这些就是一些需要记住的重要选项。

解压 tar.bz2/bzip 归档文件

具有bz2扩展名的文件是使用bzip算法进行压缩的,但是tar命令也可以对其进行处理,但是需要通过使用“j”选项来替换“z”选项。

代码如下:

$ tar -xvjf archivefile.tar.bz2

2.将文件解压到一个指定的目录或路径

为了将文件解压到一个指定的目录中,使用“-C”选项来指定路径,此处的“C”是大写“C”。

代码如下:

$ tar -xvzf abc.tar.gz -C /opt/folder/

然后,首先需要确认目标目录是否存在,毕竟tar命令并不会为你创建目录,所以如果目标目录不存在的情况下该命令会失败。

3. 提取出单个文件

为了从一个归档文件中提取出单个文件,只需要将文件名按照以下方式将其放置在命令后面。

代码如下:

$ tar -xz -f abc.tar.gz “./new/abc.txt”

在上述命令中,可以按照以下方式来指定多个文件。

代码如下:

$ tar -xz -f abc.tar.gz “./new/cde.txt” “./new/abc.txt”

4.使用通配符来解压多个文件

通配符可以用来解压于给定通配符匹配的一批文件,例如所有以“.txt”作为扩展名的文件。

代码如下:

$ tar -xz -f abc.tar.gz --wildcards “*.txt”

5. 列出并检索tar归档文件中的内容

如果你仅仅想要列出而不是解压tar归档文件的中的内容,使用“-t”(test)选项, 下面的命令用来打印一个使用gzip压缩过的tar归档文件中的内容。

代码如下:

$ tar -tz -f abc.tar.gz

./new/

./new/cde.txt

./new/subdir/

./new/subdir/in.txt

./new/abc.txt

...

可以将输出通过管道定向到grep来搜索一个文件,或者定向到less命令来浏览内容列表。 使用“v”冗长选项将会打印出每个文件的额外详细信息。

对于 tar.bz2/bzip文件,需要使用“j”选项。

结合上述的命令和grep命令来检索归档文件,如下所示。简单吧!

代码如下:

$ tar -tvz -f abc.tar.gz | grep abc.txt

-rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt

6.创建一个tar/tar.gz归档文件

现在我们已经学过了如何解压一个tar归档文件,是时候开始创建一个新的tar归档文件了。tar命令可以用来将所选的文件或整个目录放入到一个归档文件中,以下是相应的样例。

下面的命令使用一个目录来创建一个tar归档文件,它会将该目录中所有的文件和子目录都加入到归档文件中。

代码如下:

$ tar -cvf abc.tar ./new/

./new/

./new/cde.txt

./new/abc.txt

上述命令不会创建一个压缩的的归档文件,只是一个普通的归档文件,只是将多个文件放入到一个归档文件中并没有真正地压缩每个文件,

为了使用压缩,可以分别使用“z”或“j”选项进行gzip或bzip压缩算法。

代码如下:

$ tar -cvzf abc.tar.gz ./new/

文件的扩展名其实并不真正有什么影响。“tar.gz” 和“tgz”是gzip压缩算法压缩文件的常见扩展名。 “tar.bz2”和“tbz”是bzip压缩算法压缩文件的常见扩展名(LCTT 译注:归档是否是压缩的和采用哪种压缩方式并不取决于其扩展名,扩展名只是为了便于辨识。)。

7. 在添加文件之前进行确认

一个有用的选项是“w”,该选项使得tar命令在添加每个文件到归档文件之前来让用户进行确认,有时候这会很有用。

使用该选项时,只有用户输入“y”时的文件才会被加入到归档文件中,如果你不输入任何东西,其默认表示是一个“n”。

代码如下:

# 添加指定文件

$ tar -czw -f abc.tar.gz ./new/*

add ‘./new/abc.txt’?y

add ‘./new/cde.txt’?y

add ‘./new/newfile.txt’?n

add ‘./new/subdir’?y

add ‘./new/subdir/in.txt’?n

#现在列出所有被加入的文件

$ tar -t -f abc.tar.gz

./new/abc.txt

./new/cde.txt

./new/subdir/

8. 加入文件到存在的归档文件中

“r”选项可以被用来将文件加入到已存在的归档文件中,而不用创建一个新的归档文件,下面是一个简单的样例:

代码如下:

$ tar -rv -f abc.tar abc.txt

文件并不能加入到已压缩的归档文件中(gz 或 bzip)。文件只能被加入到普通的归档文件中。

9. 将文件加入到压缩的归档文件中(tar.gz/tar.bz2)

之前已经提到了不可能将文件加入到已压缩的归档文件中,然而依然可以通过简单的一些把戏来完成。使用gunzip命令来解压缩归档文件,然后将文件加入到归档文件中后重新进行压缩。

代码如下:

$ gunzip archive.tar.gz

$ tar -rf archive.tar ./path/to/file

$ gzip archive.tar

对于bzip文件分别使用bzip2和bunzip2。

10.通过tar来进行备份

一个真实的场景是在固定的时间间隔内来备份目录,tar命令可以通过cron调度来实现这样的一个备份,以下是一个样例 :

代码如下:

$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/

使用cron来运行上述的命令会保持创建类似以下名称的备份文件 :‘archive-20150218.tar.gz‘。

当然,需要确保日益增长的归档文件不会导致磁盘空间的溢出。

11. 在创建归档文件时进行验证

“W”选项可以用来在创建归档文件之后进行验证,以下是一个简单例子。

代码如下:

$ tar -cvW -f abc.tar ./new/

./new/

./new/cde.txt

./new/subdir/

./new/subdir/in.txt

./new/newfile.txt

./new/abc.txt

Verify ./new/

Verify ./new/cde.txt

Verify ./new/subdir/

Verify ./new/subdir/in.txt

Verify ./new/newfile.txt

Verify ./new/abc.txt

需要注意的是验证动作不能在压缩过的归档文件上进行,只能在非压缩的tar归档文件上执行。

这次就先到此为止,可以通过“man tar”命令来查看tar命令的的手册。

《Linux命令之文件归档、压缩、解压缩tar,gzip,gunzip,bzip2,bunz(共4篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

最新推荐
猜你喜欢
点击下载本文文档