1.解压一个tar.gz归档
一般常见的用法是用来解压归档文件,下面的命令将会把文件从一个tar.gz归档文件中解压出来。
$ tar -xvzf tarfile.tar.gz
<blockquote><p>x – 解压文件</p><p>v – 冗长模式,在解压每个文件时打印出文件的名称。</p><p>z – 该文件是一个使用 gzip 压缩的文件。</p><p>f – 使用接下来的tar归档来进行操作。</p></blockquote>
2.将文件解压到一个指定的目录或路径
为了将文件解压到一个指定的目录中,使用“-C”选项来指定路径,此处的“C”是大写“C”$ tar -xvzf abc.tar.gz -C /opt/folder/
3. 提取出单个文件
为了从一个归档文件中提取出单个文件,只需要将文件名按照以下方式将其放置在命令后面。$ tar -xz -f abc.tar.gz "./new/abc.txt"
//提出多个文件
<pre>$ tar -xz -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"
4.使用通配符来解压多个文件
通配符可以用来解压于给定通配符匹配的一批文件,例如所有以”.txt”作为扩展名的文件。$ tar -xz -f abc.tar.gz --wildcards "*.txt"
5. 列出并检索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
...
可以将输出通过管道定向到grep来搜索一个文件,或者定向到less命令来浏览内容列表。 使用”v”冗长选项将会打印出每个文件的额外详细信息。
对于 tar.bz2/bzip文件,需要使用”j”选项。
$ tar -tvz -f abc.tar.gz | grep abc.txt
-rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt
6.创建一个tar/tar.gz归档文件
现在我们已经学过了如何解压一个tar归档文件,是时候开始创建一个新的tar归档文件了。tar命令可以用来将所选的文件或整个目录放入到一个归档文件中,以下是相应的样例。
下面的命令使用一个目录来创建一个tar归档文件,它会将该目录中所有的文件和子目录都加入到归档文件中。
$ tar -cvf abc.tar ./new/
./new/
./new/cde.txt
./new/abc.tx
上述命令不会创建一个压缩的的归档文件,只是一个普通的归档文件,只是将多个文件放入到一个归档文件中并没有真正地压缩每个文件。
为了使用压缩,可以分别使用“z”或“j”选项进行gzip或bzip压缩
$ tar -cvzf abc.tar.gz ./new/
7. 在添加文件之前进行确认
一个有用的选项是“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/
8. 加入文件到存在的归档文件中
“r”选项可以被用来将文件加入到已存在的归档文件中,而不用创建一个新的归档文件,下面是一个简单的样例:$ tar -rv -f abc.tar abc.txt
9.通过tar来进行备份
一个真实的场景是在固定的时间间隔内来备份目录,tar命令可以通过cron调度来实现这样的一个备份$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/
使用cron来运行上述的命令会保持创建类似以下名称的备份文件 :’archive-20150218.tar.gz’。
当然,需要确保日益增长的归档文件不会导致磁盘空间的溢出。