shell文件归档

学习的内容来自于Linux Shell脚本攻略(2)

内容只做了简单的记录,方便自己学习

shell 命令查询地址:http://man.linuxde.net/

用Tar归档

tar命令可以对文件进行归档。他最初时设计用来将数据存储再磁带上。

tar可以将多个文件和文件夹保存为单个文件,同时还能保留所有的文本属性,如所有者,权限等。由tar创建的文件通常称为Tarball

支持的一些参数

A 合并归档文件

c 或者--create 建立新的备份文件

d 记录文件的差别

r 添加文件到已经归档的文件

u 根据时间戳判断是否添加文件

x 或者--extract或--get 从备份文件中提取文件到当前目录

C(目录) 与x搭配,在解压缩的时候指定解压缩的地址

f 或者--file 指定备份文件

v 或者--verbose 冗长模式,显示指令执行过程

t 或者--list 列出备份文件内容

--delete 删除文件

1)用tar对文件进行归档

tar -cf output.tar file1 file2 file3..

2)使用选项-t理出归档文件中包含的文件

tar -tf output.tar

3)在归档或者列出归档的时候获得更多信息。使用-v或者-vv

tar -tvf output.tar

4)解压缩文件

tar -xf output.tar

指定压缩文件中的一些文件进行解压缩(部分提取)

tar -xf output.tar file1 file2

5)合并归档文件

tar -Af file1.tar file2.tar

6)归档文件重名的问题

shell文件归档_第1张图片
1533189359883.png

我们在归档的过程中放进了两个相同的文件,接下来我又使用了-rf追加进入了一个新的文件

shell文件归档_第2张图片
1533189503793.png

同样是与原文件同名,这个时候我们会发现我们无法区别哪一个是新的文件哪一个是旧的文件

使用-u更新选项可以指明,只有比归档文件中的同名文件更新时才会被添加

1533189646589.png

使用-v 或者-vv查看时间戳,现在我们再往里面追加一个printf_sh.sh文件

首先我们先改变这个文件的时间戳,使用touch或者vim编辑文件

修改之前


shell文件归档_第3张图片
1533190286425.png

修改之后

shell文件归档_第4张图片
1533190256331.png

再把这个文件追加进去

1533190349135.png
shell文件归档_第5张图片
1533190357590.png

虽然没有覆盖上面之前的文件,但是再提取文件的时候,他会自动选择最近时间戳的文件


shell文件归档_第6张图片
1533190466110.png

比较归档文件与文件系统中的内容

-d diff

tar -df otput.tar

1533190562312.png

时间不一样,大小不一样。为什么会有两个不同


shell文件归档_第7张图片
1533190597366.png

因为这个归档文件中一共有三个printf_sh.sh

其中有一个是我现在的文件,其他两个文件是我修改以前的文件,因此会出现两个

从归档文件中和删除文件

tar -f output.tar --delete file1 file2

或者

tar --delete --file output.tar file1

注意:tar并不是压缩文件,而是归档文件

不同的tar选项可以用来指定不同的压缩格式

-j 指定bunzip2格式

-z 指定gzip格式

--lzma指定lzma格式

tar可以通过查看输出或输入文件的扩展名来进行压缩 -a


1533191326081.png

从归档文件中排除部分文件

tar -cf output.tar * --exclude "*.txt"

样式要使用双引号来使用

使用文件列表排除

创建一个文件list

tar -cf outpu.tar * -X list

排除版本控制目录

tar --exclude-vsc -czvvf output.tar file

打印总字节数

-totals

使用gzip压缩数据

1)使用gzip压缩文件

1533191916342.png

2)解压文件

gunzip filename.gz

3)列出压缩文件的属性信息

gzip -l filename.gz

4)从stdin中读入文件,也可以将压缩文件写出stdout

5)指定级别 --fast --best

其他的压缩

跟tar 和gzip很相似还有bzip2 和zip 以及lzma pbzip

你可能感兴趣的:(shell文件归档)