tar

我们已经知道了如何压缩单个文件,但没有一个能像 zip 那样打包文件的。但这到此为止。Tape Archiver, 或 tar(1), 就是 Slackware 最常用的打包工具。像其他打包工具那样,tar 生成一个包含其他文件和目录的文件。它默认不压缩生成的文件(该文件又叫“tarball”),不过 Slackware 所带的版本支持各种压缩方案,包括上面提到的那几种。

使用 tar 可以简单也可以复杂,随你喜好。一般,生成“tarball”要使用参数 -cvzf 。我们来深入地看看:

参数意义

c

创建“tarball”

x

解压“tarball”

t

显示“tarball”的内容

v

输出更多信息

z

使用 gzip 压缩方案

j

使用 bzip2 压缩方案

J

使用 LZMA 压缩方案

p

保留权限信息

tar 对于参数的顺序要求比别的程序更严格。 -f 参数当读或写入文件时必须出现,并且紧跟其后的必须是文件名。看看这个例子:

darkstar:~$ tar -xvzf /tmp/tarball.tar.gz
darkstar:~$ tar -xvfz /tmp/tarball.tar.gz

上面,第一个命令能够正常运行,第二个会失败因为 tar 会尝试打开文件 z 而不是 /tmp/tarball.tar.gz.

译者注:因为 -f 参数要求一个文件名,因此在 -f 之后知道空白字符的字符串都会被当做一个文件路径使用。

既然我们已经充分了解了参数的意义,来让我们看看如何创建和解压“tarball”。前面已经说过,-c 参数用来创建而 -x 用来解压。如果想创建或解压一个压缩过的“tarball”, 我们需要指定合适的压缩方案。自然,如果不想压缩文件也可以不填。下面的这个命令使用 gzip 算法创建并压缩一个“tarball”。尽管没有严格要求,但还是加上 .tar 的扩展名以及所使用的压缩算法为最好。

darkstar:~$ tar -czf /tmp/tarball.tar.gz /tmp/tarball/

最后更新于