4-11 Linux中的打包和备份的归档工具 --- tar(打包)

4-11 Linux中的打包和备份的归档工具 --- tar(打包),第1张

2、用参数 -cvf 打包 directory 目录及内容。

3、用参数 tf 列出包内容。tvf 列出包详细内容

4、解包用 xvf 参数。

5、打包、解包细节事项:

2)、如果想把打包文件存放到其他地方,就要指定打包路径存放 tar 的打包文件。

例:把 directory 目录及文件打包到 backups_tar 目录。

3)、精确定位打包到单个目录或目录下的文件。

4)、指定打包某些目录、文件。假设 SRC 目录下有多个目录及不同类型的文件需要进行打包。

6)、--exclude:排除指定目录或文件不进行打包。

打包

打包,也称为归档,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。通常,归档总是会和系统备份联系在一起。

压缩

压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。

压缩和归档文件类似,压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小。

由于计算机处理的信息是以二进制的形式表示的,因此,压缩软件就是把二进制信息中相同的字符串以特殊字符标记,只要通过合理的数学计算,文件的体积就能够被大大压缩。把一个或者多个文件用压缩软件进行压缩,形成一个文件压缩包,既可以节省存储空间,又方便在网络上传送。

对文件进行压缩,很可能损坏文件中的内容,因此,压缩又可以分为有损压缩和无损压缩。

打包和压缩的区别

打包指的是将多个文件和目录集中存储在一个文件中,而压缩则指的是利用算法对文件进行处理,从而达到缩减占用磁盘空间的目的。

Linux下,常用打包命令有2个,分别是tar和dd常用的压缩命令有很多,比如gzip、zip、bzip2等。

这里教大家如何用find、xargs和tar命令完成上面的功能。

建立一个测试环境,新建几个文件

# cd /tmp

# mkdir test

# cd test

# touch a.php b.js c.css 1.png

# ls

1.png  a.php  b.js  c.css

接下来,通过find命令找出指定后缀的文件,为了支持多个后缀文件,find命令用到了正则匹配

# find . -type f -regex ".*\.\(php\|js\|css\)"

./b.js

./a.php

./c.css

-regex后面的参数看起来很复杂,其实很简单,我来做个解释,双引号就不需要解释了吧

.*\.\(php\|js\|css\) 简化一下就是.*.(php|js|css),其实就是对.()|做了下转义而已,开头的.*匹配除换行符外的任意字符(这个懂正则表达式的应该都明白)

找出文件后,就是如何备份这些文件了,tar需要指定源文件,怎么获取find出来的这些文件,并传给tar呢,xargs的作用就来了。看到下面xargs输出的是什么了吧,这个正是tar需要的。

# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs

./b.js ./a.php ./c.css

# find . -type f -regex ".*\.\(php\|js\|css\)" | xargs tar czvf test.tar.gz

./b.js

./a.php

./c.css

下面看看文件是否备份成功了

# tar tzvf test.tar.gz

-rw-r--r-- root/root         0 2014-03-14 10:38 ./b.js

-rw-r--r-- root/root         0 2014-03-14 10:37 ./a.php

-rw-r--r-- root/root         0 2014-03-14 10:38 ./c.css


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8707735.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存