18在Linux中的tar命令示例

Linux的“ tar ”代表打包归档,这是通过使用大量 的Linux / Unix系统管理员来处理打包驱动器备份。 用于抓取的文件和目录的集合到 Linux的高度压缩的档案文件通常称为 压缩包tar ,gzip的bZIP tar命令。 tar是最广泛使用的命令,用于创建压缩归档文件,并且可以轻松地从一个磁盘移动到另一个磁盘或机器到机器。

Linux tar命令示例

在这篇文章中,我们将要审议和讨论各种 tar命令的例子 ,包括如何创建使用档案文件( tar ,tar.gz的TAR.BZ2)压缩,如何提取存档文件,单个文件解压缩,查看文件内容,验证文件,向归档文件添加文件或目录,估计tar归档文件的大小等。 本指南的主要目的是提供各种 tar命令例子可能会有帮助你理解并成为tar归档处理专家。

1.创建tar存档文件

下面的例子命令将创建一个 tar归档文件 youcl-14-09-12.tar在当前工作目录中的目录 / home / youcl。请参阅操作中的示例命令。
# tar -cvf youcl-14-09-12.tar /home/youcl/
/home/youcl/
/home/youcl/cleanfiles.sh
/home/youcl/openvpn-2.1.4.tar.gz
/home/youcl/youcl-14-09-12.tar
/home/youcl/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
/home/youcl/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
让我们讨论我们在上面的命令创建tar存档文件中使用的每个选项。
  1. c -创建一个新的.tar归档文件。
  2. v - 输出列出来源显示.tar文件的进展。
  3. f - 文件名输入存档文件的。

2.创建tar.gz归档文件

要创建 的gzip压缩归档文件,我们使用的选项与 z。 例如下面的命令将创建目录 / home / MyImages压缩 MyImages-14-09-12.tar.gz文件。 ( 注:tar.gz的和TGZ都是相似 )。
# tar cvzf MyImages-14-09-12.tar.gz /home/MyImages
OR
# tar cvzf MyImages-14-09-12.tgz /home/MyImages
/home/MyImages/
/home/MyImages/Sara-Khan-and-model-Priyanka-Shah.jpg
/home/MyImages/RobertKristenviolent101201.jpg
/home/MyImages/Justintimerlake101125.jpg
/home/MyImages/Mileyphoto101203.jpg
/home/MyImages/JenniferRobert101130.jpg
/home/MyImages/katrinabarbiedoll231110.jpg
/home/MyImages/the-japanese-wife-press-conference.jpg
/home/MyImages/ReesewitherspoonCIA101202.jpg
/home/MyImages/yanaguptabaresf231110.jpg

3.创建tar.bz2归档文件

BZ2功能压缩比 gzip的大小创建归档文件少。 压缩bz2压缩需要更多的时间来压缩相比 ,gzip的其中需要较少的时间解压缩文件。 要创建高度压缩的tar文件,我们使用选项为 J。 命令下面的例子将创建一个目录 / home / PHP的一个 Phpfiles-org.tar.bz2文件。 ( 注:TAR.BZ2和TBZ是TB2相似 )。
# tar cvfj Phpfiles-org.tar.bz2 /home/php
OR
# tar cvfj Phpfiles-org.tar.tbz /home/php
OR 
# tar cvfj Phpfiles-org.tar.tb2 /home/php
/home/php/
/home/php/iframe_ew.php
/home/php/videos_all.php
/home/php/rss.php
/home/php/index.php
/home/php/vendor.php
/home/php/video_title.php
/home/php/report.php
/home/php/object.html
/home/php/video.php

4.解压tar存档文件

要解包或提取一个tar文件,使用如下选项 X( 提取 )命令只是问题。 例如下面的命令将在解压当前工作目录中的文件 的public_html-14-09-12.tar。 如果您在不同的目录要解压缩,然后使用选项为 C( 指定目录 )。
## Untar files in Current Directory ##
# tar -xvf public_html-14-09-12.tar
## Untar files in specified Directory ##
# tar -xvf public_html-14-09-12.tar -C /home/public_html/videos/
/home/public_html/videos/
/home/public_html/videos/views.php
/home/public_html/videos/index.php
/home/public_html/videos/logout.php
/home/public_html/videos/all_categories.php
/home/public_html/videos/feeds.xml

5.解压缩tar.gz归档文件

解压缩 tar.gz压缩文件,只需要运行下面的命令。 如果想在不同的目录下解压只使用选项 -C和目录的路径,就像上面的例子证明我们。
# tar -xvf thumbnails-14-09-12.tar.gz
/home/public_html/videos/thumbnails/
/home/public_html/videos/thumbnails/katdeepika231110.jpg
/home/public_html/videos/thumbnails/katrinabarbiedoll231110.jpg
/home/public_html/videos/thumbnails/onceuponatime101125.jpg
/home/public_html/videos/thumbnails/playbutton.png
/home/public_html/videos/thumbnails/ReesewitherspoonCIA101202.jpg
/home/public_html/videos/thumbnails/snagItNarration.jpg
/home/public_html/videos/thumbnails/Minissha-Lamba.jpg
/home/public_html/videos/thumbnails/Lindsaydance101201.jpg
/home/public_html/videos/thumbnails/Mileyphoto101203.jpg

6.解压缩tar.bz2归档文件

解压缩高度压缩 TAR.BZ2文件,只需要使用下面的命令。 下面的例子命令将解压从存档文件中的所有 的FLV文件。
# tar -xvf videos-14-09-12.tar.bz2
/home/public_html/videos/flv/katrinabarbiedoll231110.flv
/home/public_html/videos/flv/BrookmuellerCIA101125.flv
/home/public_html/videos/flv/dollybackinbb4101125.flv
/home/public_html/videos/flv/JenniferRobert101130.flv
/home/public_html/videos/flv/JustinAwardmovie101125.flv
/home/public_html/videos/flv/Lakme-Fashion-Week.flv
/home/public_html/videos/flv/Mileyphoto101203.flv
/home/public_html/videos/flv/Minissha-Lamba.flv

7.列出tar存档文件的内容

要列出tar归档文件的内容,只是运行使用选项 t ( 列表内容 )以下命令。 下面的命令将列出 uploadprogress.tar文件的内容。
# tar -tvf uploadprogress.tar
-rw-r--r-- chregu/staff   2276 2011-08-15 18:51:10 package2.xml
-rw-r--r-- chregu/staff   7877 2011-08-15 18:51:10 uploadprogress/examples/index.php
-rw-r--r-- chregu/staff   1685 2011-08-15 18:51:10 uploadprogress/examples/server.php
-rw-r--r-- chregu/staff   1697 2011-08-15 18:51:10 uploadprogress/examples/info.php
-rw-r--r-- chregu/staff    367 2011-08-15 18:51:10 uploadprogress/config.m4
-rw-r--r-- chregu/staff    303 2011-08-15 18:51:10 uploadprogress/config.w32
-rw-r--r-- chregu/staff   3563 2011-08-15 18:51:10 uploadprogress/php_uploadprogress.h
-rw-r--r-- chregu/staff  15433 2011-08-15 18:51:10 uploadprogress/uploadprogress.c
-rw-r--r-- chregu/staff   1433 2011-08-15 18:51:10 package.xml

8.列出内容tar.gz存档文件

使用以下命令列出 tar.gz文件的内容。
# tar -tvf staging.youcl.com.tar.gz
-rw-r--r-- root/root         0 2012-08-30 04:03:57 staging.youcl.com-access_log
-rw-r--r-- root/root       587 2012-08-29 18:35:12 staging.youcl.com-access_log.1
-rw-r--r-- root/root       156 2012-01-21 07:17:56 staging.youcl.com-access_log.2
-rw-r--r-- root/root       156 2011-12-21 11:30:56 staging.youcl.com-access_log.3
-rw-r--r-- root/root       156 2011-11-20 17:28:24 staging.youcl.com-access_log.4
-rw-r--r-- root/root         0 2012-08-30 04:03:57 staging.youcl.com-error_log
-rw-r--r-- root/root      3981 2012-08-29 18:35:12 staging.youcl.com-error_log.1
-rw-r--r-- root/root       211 2012-01-21 07:17:56 staging.youcl.com-error_log.2
-rw-r--r-- root/root       211 2011-12-21 11:30:56 staging.youcl.com-error_log.3
-rw-r--r-- root/root       211 2011-11-20 17:28:24 staging.youcl.com-error_log.4

9.列出内容tar.bz2归档文件

要列出 TAR.BZ2文件的内容,发出以下命令。
# tar -tvf Phpfiles-org.tar.bz2
drwxr-xr-x root/root         0 2012-09-15 03:06:08 /home/php/
-rw-r--r-- root/root      1751 2012-09-15 03:06:08 /home/php/iframe_ew.php
-rw-r--r-- root/root     11220 2012-09-15 03:06:08 /home/php/videos_all.php
-rw-r--r-- root/root      2152 2012-09-15 03:06:08 /home/php/rss.php
-rw-r--r-- root/root      3021 2012-09-15 03:06:08 /home/php/index.php
-rw-r--r-- root/root      2554 2012-09-15 03:06:08 /home/php/vendor.php
-rw-r--r-- root/root       406 2012-09-15 03:06:08 /home/php/video_title.php
-rw-r--r-- root/root      4116 2012-09-15 03:06:08 /home/php/report.php
-rw-r--r-- root/root      1273 2012-09-15 03:06:08 /home/php/object.html

10.解压单个文件从tar文件

cleanfiles.sh.tar提取称为 cleanfiles.sh单个文件中使用下面的命令。
# tar -xvf cleanfiles.sh.tar cleanfiles.sh
OR
# tar --extract --file=cleanfiles.sh.tar cleanfiles.sh
cleanfiles.sh

11.从tar.gz文件解压单个文件

提取 youclbackup.tar.gz归档文件一个文件 youclbackup.xml,使用如下命令。
# tar -zxvf youclbackup.tar.gz youclbackup.xml
OR
# tar --extract --file=youclbackup.tar.gz youclbackup.xml
youclbackup.xml

12.从tar.bz2文件解压单个文件

中提取所谓 的index.php从文件 Phpfiles-org.tar.bz2使用下列选项的单个文件。
# tar -jxvf Phpfiles-org.tar.bz2 home/php/index.php
OR
# tar --extract --file=Phpfiles-org.tar.bz2 /home/php/index.php
/home/php/index.php

13.从tar,tar.gz和tar.bz2文件解开多个文件

要提取或 tar ,tar.gz的TAR.BZ2归档文件解压缩多个文件。 例如下面的命令将提取的存档文件“ 文件 1”,“2 ”。
# tar -xvf youcl-14-09-12.tar "file 1" "file 2" 
# tar -zxvf MyImages-14-09-12.tar.gz "file 1" "file 2" 
# tar -jxvf Phpfiles-org.tar.bz2 "file 1" "file 2"

14.使用通配符提取文件组

要提取一组文件,我们使用基于 通配符提取。 例如,提取一组其模式与 .PHP开始从一个 tar,tar.gz的和TAR.BZ2归档文件的所有文件。
# tar -xvf Phpfiles-org.tar --wildcards '*.php'
# tar -zxvf Phpfiles-org.tar.gz --wildcards '*.php'
# tar -jxvf Phpfiles-org.tar.bz2 --wildcards '*.php'
/home/php/iframe_ew.php
/home/php/videos_all.php
/home/php/rss.php
/home/php/index.php
/home/php/vendor.php
/home/php/video_title.php
/home/php/report.php
/home/php/video.php

15.将文件或目录添加到tar存档文件

要将文件或目录添加到现有的tar存档文件中,我们使用的选项 R( 追加 )。 例如,我们添加文件 xyz.txt将该和目录 PHP现有 youcl-14-09-12.tar存档文件。
# tar -rvf youcl-14-09-12.tar xyz.txt
# tar -rvf youcl-14-09-12.tar php
drwxr-xr-x root/root         0 2012-09-15 02:24:21 home/youcl/
-rw-r--r-- root/root  15740615 2012-09-15 02:23:42 home/youcl/cleanfiles.sh
-rw-r--r-- root/root    863726 2012-09-15 02:23:41 home/youcl/openvpn-2.1.4.tar.gz
-rw-r--r-- root/root  21063680 2012-09-15 02:24:21 home/youcl/youcl-14-09-12.tar
-rw-r--r-- root/root   4437600 2012-09-15 02:23:41 home/youcl/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
-rw-r--r-- root/root     12680 2012-09-15 02:23:41 home/youcl/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
-rw-r--r-- root/root 0 2012-08-18 19:11:04 xyz.txt
drwxr-xr-x root/root 0 2012-09-15 03:06:08 php/ 
-rw-r--r-- root/root 1751 2012-09-15 03:06:08 php/iframe_ew.php 
-rw-r--r-- root/root 11220 2012-09-15 03:06:08 php/videos_all.php 
-rw-r--r-- root/root 2152 2012-09-15 03:06:08 php/rss.php 
-rw-r--r-- root/root 3021 2012-09-15 03:06:08 php/index.php 
-rw-r--r-- root/root 2554 2012-09-15 03:06:08 php/vendor.php 
-rw-r--r-- root/root 406 2012-09-15 03:06:08 php/video_title.php

16.将文件或目录添加到tar.gz和tar.bz2文件

tar命令没有一个选项,以文件或目录添加到现有的压缩 的tar.gzTAR.BZ2存档文件。如果我们尝试会得到tbe跟随错误。
# tar -rvf MyImages-14-09-12.tar.gz xyz.txt
# tar -rvf Phpfiles-org.tar.bz2 xyz.txt
tar: This does not look like a tar archive
tar: Skipping to next header
xyz.txt
tar: Error exit delayed from previous errors

17.如何验证tar,tar.gz和tar.bz2归档文件

要verfify我们使用选项为 W任何tar或压缩归档的文件( 验证 )。 要做,只需使用以下命令示例。 ( 注:你不能做一个压缩( 与* .tar.gz验证 ,则以.tar.bz2 *)档案文件)。
# tar tvfW youcl-14-09-12.tar
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: VERIFY FAILURE: 30740 invalid headers detected
Verify -rw-r--r-- root/root    863726 2012-09-15 02:23:41 /home/youcl/openvpn-2.1.4.tar.gz
Verify -rw-r--r-- root/root  21063680 2012-09-15 02:24:21 /home/youcl/youcl-14-09-12.tar
tar: /home/youcl/youcl-14-09-12.tar: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root   4437600 2012-09-15 02:23:41 home/youcl/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
tar: /home/youcl/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root     12680 2012-09-15 02:23:41 home/youcl/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
tar: /home/youcl/rpmforge-release-0.5.2-2.el5.rf.i386.rpm: Warning: Cannot stat: No such file or directory
Verify -rw-r--r-- root/root         0 2012-08-18 19:11:04 xyz.txt
Verify drwxr-xr-x root/root         0 2012-09-15 03:06:08 php/

18.检查tar,tar.gz和tar.bz2归档文件的大小

要检查任何 tar ,tar.gz的TAR.BZ2存档文件的大小,请使用以下命令。 例如下面的命令将显示archvie文件以千字节 (KB)的大小。
# tar -czf - youcl-14-09-12.tar | wc -c
12820480
# tar -czf - MyImages-14-09-12.tar.gz | wc -c
112640
# tar -czf - Phpfiles-org.tar.bz2 | wc -c
20480

tar使用和选项

  1. c -创建一个存档文件。
  2. x -提取存档文件。
  3. v - 输出显示归档文件的进度。
  4. f -档案文件的文件名。
  5. t -归档文件的查看内容。
  6. j -通过过滤器的bzip2压缩。
  7. z -通过过滤器的gzip压缩。
  8. r -添加或更新文件或目录对现有的存档文件。
  9. W -验证一个存档文件。
  10. wildcards 通配符 -指定UNIX tar命令patters。
这就是它现在,希望以上的 tar命令例子足以让你学习和了解更多信息,请用 man tar命令。 如果你打算将任何大型tar归档文件拆分成多个部分或块,只需阅读本文:

不要错过: 拆分大型tar'归档到一定规模的多个文件

如果我们错过了任何例子,请通过评论框与我们分享,请不要忘记与您的朋友分享这篇文章。这是最好的方式说感谢... ..
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏