linux tar 创建和解压文档

Posted on Posted in command
Tips: 本文创建于2015年4月8日,已超过 2 年,内容或图片可能已经失效!

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

1、解压一个tar.gz归档

tar -xvzf tarfile.tar.gz
  • x - 解压文件
  • v - 冗长模式,在解压每个文件时打印出文件的名称。
  • z - 该文件是一个使用 gzip 压缩的文件。
  • f - 使用接下来的tar归档来进行操作。

2、解压 tar.bz2/bzip 归档文件

tar -xvjf archivefile.tar.bz2

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

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

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

4、取出文件

单个文件

tar -xz -f abc.tar.gz "./new/abc.txt"

多个文件

tar -xz -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"

5、使用通配符来解压多个文件

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

tar -xz -f abc.tar.gz --wildcards "*.txt"

6、列出并检索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
...

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

tar -cvf abc.tar ./new/
./new/
./new/cde.txt
./new/abc.txt

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

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

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

8、在添加文件之前进行确认

一个有用的选项是"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/

9、加入文件到存在的归档文件中

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

tar -rv -f abc.tar abc.txt

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

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

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

gunzip archive.tar.gz
$ tar -rf archive.tar ./path/to/file
$ gzip archive.tar

11、通过tar来进行备份

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

12、在创建归档文件时进行验证

"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归档文件上执行。

» 转载请注明来源:若我若鱼 » linux tar 创建和解压文档

Leave a Reply

Your email address will not be published. Required fields are marked *

eleven + four =