700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Linux 命令行——gzip gunzip bzip bunzip tar zip等命令

Linux 命令行——gzip gunzip bzip bunzip tar zip等命令

时间:2019-01-13 17:14:56

相关推荐

Linux 命令行——gzip gunzip bzip bunzip tar zip等命令

备份和归档

1.备份和归档2.文件压缩(compression)程序3. 归档(Archiving)程序

本文摘录自 Linux 命令行

1.备份和归档

计算机系统管理员的一个主要任务就是保护计算机的数据安全,一种方法就是不时给文件做备份。即使你不是系统管理员,在你做拷贝和在各个设备和位置之间移动大量文件做备份总是没错的。我们这一部分学习用来管理文件集合的程序。

2.文件压缩(compression)程序

数据压缩技术是删除冗余数据的过程,压缩算法分为两大类:有损压缩和无损压缩。无损压缩保存了原文件的所有数据,压缩比接近 5:1,还原可以和原文件一模一样;有损压缩会去掉我们肉眼看不到的数据等,可达 200:1。

gzip:压缩一个或多个文件。当执行 gzip 时,则生成的压缩文件会替代原文件(不保留原文件)。相对应的 gunzip 用来解压缩。

chappyzhao@ChappydeMacBook-Pro Pics % ls -l /bin > timestamp chappyzhao@ChappydeMacBook-Pro Pics % ls -l timestamp -rw-r--r-- 1 chappyzhao staff 1874 6 6 17:18 timestampchappyzhao@ChappydeMacBook-Pro Pics % gzip timestamp # 可以看到原始文件大约被压缩了 5 倍chappyzhao@ChappydeMacBook-Pro Pics % ls -l timestamp.* -rw-r--r-- 1 chappyzhao staff 390 6 6 17:18 timestamp.gzchappyzhao@ChappydeMacBook-Pro Pics % gunzip timestamp.gz chappyzhao@ChappydeMacBook-Pro Pics % ls -l timestamp -rw-r--r-- 1 chappyzhao staff 1874 6 6 17:18 timestamp# 使用下面的命令可以将 foo.txt 文件压缩并将 /etc 目录写入压缩文件ls -l /etc | gzip > foo.tx.gz# 为了浏览压缩文件内容,我们可以这样做root@bogon Pics # gunzip -c foo.txt.gz | less

gzip 有很多选项,这里有一些常用的:

bzip:与 gzip 类似,但是使用了不同的压缩算法,舍弃了压缩速度,而实现了更高的压缩级别。大多数情况下,它的工作模式等同于 gzip。由 bzip 压缩的文件,用 .bz2 来表示:

root@bogon Pics # ls -l /etc > foo.txtroot@bogon Pics # ls -l foo.txt -rw-r--r-- 1 chappyzhao staff 62 6 7 14:18 foo.txtroot@bogon Pics # bzip2 foo.txt# 这里我们发现较小的文件压缩后比之前还大,因为每次压缩时,压缩算法都会给文件添加描述此次压缩过程的信息。root@bogon Pics # ls -l foo.txt.bz2 -rw-r--r-- 1 chappyzhao staff 93 6 7 14:18 foo.txt.bz2root@bogon Pics # bunzip2 foo.txt.bz2

3. 归档(Archiving)程序

与文件压缩结合使用的一个常见文件管理任务是归档。归档就是收集许多文件然后将它们捆绑成一个大文件的过程。归档经常作为系统备份的一部分来使用,当把旧数据从一个系统迁移到某种类型的长期存储设备中时,也会用到归档。

tar:在类 Unix 的软件世界里,tar 程序是归档文件的经典工具。它的名字,是 tape achive(磁带备份)的简称。我们经常看到 .tar 或 .tgz 的文件,它们表示普通的 tar 包和被 gzip 压缩过的 tar 包。一个 tar 包可以由一组独立的文件,一个或多个目录,或两者的混合体组成。命令语法如下:tar mode[options] pathname...

这里的 mode 是指以下的操作模式之一:

# 创建整个目录的 tar 包tar cf Pics.tar /Users/chappyzhao/Downloads/pictures/Pics/-01/Pics# 列出归档的内容tar tf Pics.tar# 列出归档的详细内容➕vtar tfv Pics.tar# 抽取 tar 包到新的位置,会将归档的内容重新打开放到这个目录下。除非是超级用户,否则抽取出的所有权归操作用户所有tar xf ../-01/Pics.tar

通过给命令添加末尾的路径名,tar 命令就只会恢复指定的文件。可以指定多个路径名。GNU 版本的 tar 命令支持通配符:tar xf ../-01/Pics.tar --wildcards '/Users/chappyzhao/Downloads/pictures/Pics/-01/Pics/dir-\*/file-A':只抽取特定的路径名 file-A 到当前目录。

tar 经常和 find 命令来制作归档文件。

# 找到所有的 file-A 文件添加到 playground.tar 后面find playground/ -name 'file-A' -exec tar rf playground.tar '{}' '+'# 我们先用 find 查找出了匹配文件列表,然后把它们管道到 tar 命令中。如果指定了文件名“-”,就会被看为标准输入输出(使用“-”来表示标准输入输出是很多程序的惯例)。--file-from 选项(也可以用 -T)导致 tar 命令从一个文件而不是命令行来读取数据。最后,这个由tar 产生的归档数据被 管道到 gzip 命令中,然后创建了归档压缩文件 tgz。有时也会用 tar.gz。find Pics -name 'file-A' | tar cf - --files-from=- | gzip > playground.tgz# 上面示例我们可以这样简化它,下面分别是 gzip 压缩和 bzip2 压缩root@bogon -01 # find Pics -name 'file-C' | tar czf Pics.tgz -T -root@bogon -01 # find Pics -name 'file-C' | tar cjf Pics.tbz -T -

zip:zip 程序既是压缩工具也是打包工具。Windows 常用,Linux 中 gzip 是主要的,bzip2其次。zip -r Pics.zip Pics:除非加上 -r 选项,否则只有 Pics 目录被存储。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。