linux中的18个tar命令示例

1. 在 Linux 中创建 tar 存档文件

下面的示例命令将创建一个tar存档文件rumenz-14-09-12.tar对于目录/home/rumenz在当前工作目录中。请参阅示例命令的操作。

  1. # tar -cvf rumenz-14-09-12.tar /home/rumenz/
  2. /home/rumenz/
  3. /home/rumenz/cleanfiles.sh
  4. /home/rumenz/openvpn-2.1.4.tar.gz
  5. /home/rumenz/rumenz-14-09-12.tar
  6. /home/rumenz/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
  7. /home/rumenz/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

创建 tar 存档文件的选项。

  1. c– 创建一个新的 .tar 存档文件。
  2. v– 详细显示 .tar 文件进度。
  3. f– 存档文件的文件名类型。

2. 在 Linux 中创建 tar.gz 存档文件

创建一个压缩gzip我们使用该选项作为存档文件z.例如,下面的命令将创建一个压缩MyImages-14-09-12.tar.gz目录的文件/home/MyImages.(Note: tar.gz and tgz both are similar)。

  1. # tar cvzf MyImages-14-09-12.tar.gz /home/MyImages
  2. OR
  3. # tar cvzf MyImages-14-09-12.tgz /home/MyImages
  4. /home/MyImages/
  5. /home/MyImages/Sara-Khan-and-model-Priyanka-Shah.jpg
  6. /home/MyImages/RobertKristenviolent101201.jpg
  7. /home/MyImages/Justintimerlake101125.jpg
  8. /home/MyImages/Mileyphoto101203.jpg
  9. /home/MyImages/JenniferRobert101130.jpg
  10. /home/MyImages/katrinabarbiedoll231110.jpg
  11. /home/MyImages/the-japanese-wife-press-conference.jpg
  12. /home/MyImages/ReesewitherspoonCIA101202.jpg
  13. /home/MyImages/yanaguptabaresf231110.jpg

3. 在 Linux 中创建 tar.bz2 存档文件

bz2功能压缩并创建一个小于gzip.这bz2压缩比压缩和解压缩文件需要更多的时间gzip

要创建压缩的tar文件,我们使用选项j.以下示例命令将创建一个Phpfiles-org.tar.bz2一个目录的文件/home/php

  1. # tar cvfj Phpfiles-org.tar.bz2 /home/php
  2. OR
  3. # tar cvfj Phpfiles-org.tar.tbz /home/php
  4. OR
  5. # tar cvfj Phpfiles-org.tar.tb2 /home/php
  6. /home/php/
  7. /home/php/iframe_ew.php
  8. /home/php/videos_all.php
  9. /home/php/rss.php
  10. /home/php/index.php
  11. /home/php/vendor.php
  12. /home/php/video_title.php
  13. /home/php/report.php
  14. /home/php/object.html
  15. /home/php/video.php

4. 在 Linux 中解压 tar 存档文件

要解压缩或提取 tar 文件,只需使用选项发出以下命令x(extract)。例如,下面的命令将解压文件public_html-14-09-12.tar在当前工作目录中。

如果要在不同的目录中解压,请使用选项作为-C(specified directory)。

  1. ## Untar files in Current Directory ##
  2. # tar -xvf public_html-14-09-12.tar
  3. ## Untar files in specified Directory ##
  4. # tar -xvf public_html-14-09-12.tar -C /home/public_html/videos/
  5. /home/public_html/videos/
  6. /home/public_html/videos/views.php
  7. /home/public_html/videos/index.php
  8. /home/public_html/videos/logout.php
  9. /home/public_html/videos/all_categories.php
  10. /home/public_html/videos/feeds.xml

5. 在 Linux 中解压 tar.gz 存档文件

解压tar.gz存档文件,只需运行以下命令。如果我们想在不同的目录中解压,只需使用选项-C和目录路径,如上例所示。

  1. # tar -xvf thumbnails-14-09-12.tar.gz
  2. /home/public_html/videos/thumbnails/
  3. /home/public_html/videos/thumbnails/katdeepika231110.jpg
  4. /home/public_html/videos/thumbnails/katrinabarbiedoll231110.jpg
  5. /home/public_html/videos/thumbnails/onceuponatime101125.jpg
  6. /home/public_html/videos/thumbnails/playbutton.png
  7. /home/public_html/videos/thumbnails/ReesewitherspoonCIA101202.jpg
  8. /home/public_html/videos/thumbnails/snagItNarration.jpg
  9. /home/public_html/videos/thumbnails/Minissha-Lamba.jpg
  10. /home/public_html/videos/thumbnails/Lindsaydance101201.jpg
  11. /home/public_html/videos/thumbnails/Mileyphoto101203.jpg

6. 在 Linux 中解压 tar.bz2 存档文件

解压缩高度压缩的tar.bz2文件,只需使用以下命令。下面的示例命令将解压所有.flv存档文件中的文件。

  1. # tar -xvf videos-14-09-12.tar.bz2
  2. /home/public_html/videos/flv/katrinabarbiedoll231110.flv
  3. /home/public_html/videos/flv/BrookmuellerCIA101125.flv
  4. /home/public_html/videos/flv/dollybackinbb4101125.flv
  5. /home/public_html/videos/flv/JenniferRobert101130.flv
  6. /home/public_html/videos/flv/JustinAwardmovie101125.flv
  7. /home/public_html/videos/flv/Lakme-Fashion-Week.flv
  8. /home/public_html/videos/flv/Mileyphoto101203.flv
  9. /home/public_html/videos/flv/Minissha-Lamba.flv

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

要列出tar存档文件的内容,只需运行以下带有选项的命令t(list content)。下面的命令将列出内容uploadprogress.tar文件。

  1. # tar -tvf uploadprogress.tar
  2. -rw-r--r-- chregu/staff 2276 2011-08-15 18:51:10 package2.xml
  3. -rw-r--r-- chregu/staff 7877 2011-08-15 18:51:10 uploadprogress/examples/index.php
  4. -rw-r--r-- chregu/staff 1685 2011-08-15 18:51:10 uploadprogress/examples/server.php
  5. -rw-r--r-- chregu/staff 1697 2011-08-15 18:51:10 uploadprogress/examples/info.php
  6. -rw-r--r-- chregu/staff 367 2011-08-15 18:51:10 uploadprogress/config.m4
  7. -rw-r--r-- chregu/staff 303 2011-08-15 18:51:10 uploadprogress/config.w32
  8. -rw-r--r-- chregu/staff 3563 2011-08-15 18:51:10 uploadprogress/php_uploadprogress.h
  9. -rw-r--r-- chregu/staff 15433 2011-08-15 18:51:10 uploadprogress/uploadprogress.c
  10. -rw-r--r-- chregu/staff 1433 2011-08-15 18:51:10 package.xml

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

使用以下命令列出内容tar.gz文件。

  1. # tar -tvf staging.rumenz.com.tar.gz
  2. -rw-r--r-- root/root 0 2012-08-30 04:03:57 staging.rumenz.com-access_log
  3. -rw-r--r-- root/root 587 2012-08-29 18:35:12 staging.rumenz.com-access_log.1
  4. -rw-r--r-- root/root 156 2012-01-21 07:17:56 staging.rumenz.com-access_log.2
  5. -rw-r--r-- root/root 156 2011-12-21 11:30:56 staging.rumenz.com-access_log.3
  6. -rw-r--r-- root/root 156 2011-11-20 17:28:24 staging.rumenz.com-access_log.4
  7. -rw-r--r-- root/root 0 2012-08-30 04:03:57 staging.rumenz.com-error_log
  8. -rw-r--r-- root/root 3981 2012-08-29 18:35:12 staging.rumenz.com-error_log.1
  9. -rw-r--r-- root/root 211 2012-01-21 07:17:56 staging.rumenz.com-error_log.2
  10. -rw-r--r-- root/root 211 2011-12-21 11:30:56 staging.rumenz.com-error_log.3
  11. -rw-r--r-- root/root 211 2011-11-20 17:28:24 staging.rumenz.com-error_log.4

9. Linux 中列出内容 tar.bz2 存档文件

列出内容tar.bz2文件,发出以下命令。

  1. # tar -tvf Phpfiles-org.tar.bz2
  2. drwxr-xr-x root/root 0 2012-09-15 03:06:08 /home/php/
  3. -rw-r--r-- root/root 1751 2012-09-15 03:06:08 /home/php/iframe_ew.php
  4. -rw-r--r-- root/root 11220 2012-09-15 03:06:08 /home/php/videos_all.php
  5. -rw-r--r-- root/root 2152 2012-09-15 03:06:08 /home/php/rss.php
  6. -rw-r--r-- root/root 3021 2012-09-15 03:06:08 /home/php/index.php
  7. -rw-r--r-- root/root 2554 2012-09-15 03:06:08 /home/php/vendor.php
  8. -rw-r--r-- root/root 406 2012-09-15 03:06:08 /home/php/video_title.php
  9. -rw-r--r-- root/root 4116 2012-09-15 03:06:08 /home/php/report.php
  10. -rw-r--r-- root/root 1273 2012-09-15 03:06:08 /home/php/object.html

10. 在 Linux 中从 tar 文件解压单个文件

提取名为的单个文件cleanfiles.shcleanfiles.sh.tar使用以下命令。

  1. # tar -xvf cleanfiles.sh.tar cleanfiles.sh
  2. OR
  3. # tar --extract --file=cleanfiles.sh.tar cleanfiles.sh
  4. cleanfiles.sh

11. 在 Linux 中从 tar.gz 文件解压单个文件

提取单个文件rumenzbackup.xml来自rumenzbackup.tar.gz归档文件,使用命令如下。

  1. # tar -zxvf rumenzbackup.tar.gz rumenzbackup.xml
  2. OR
  3. # tar --extract --file=rumenzbackup.tar.gz rumenzbackup.xml
  4. rumenzbackup.xml

12.Linux 下 tar.bz2 文件解压单个文件

提取名为的单个文件index.php从文件Phpfiles-org.tar.bz2使用以下选项。

  1. # tar -jxvf Phpfiles-org.tar.bz2 home/php/index.php
  2. OR
  3. # tar --extract --file=Phpfiles-org.tar.bz2 /home/php/index.php
  4. /home/php/index.php

13. 从 tar、tar.gz 和 tar.bz2 文件中解压多个文件

从文件夹中提取或解压多个文件tar,tar.gz,tar.bz2存档文件。例如,下面的命令将提取 file 1 file 2 来自存档文件。

  1. # tar -xvf rumenz-14-09-12.tar "file1" "file2"
  2. # tar -zxvf MyImages-14-09-12.tar.gz "file1" "file2"
  3. # tar -jxvf Phpfiles-org.tar.bz2 "file1" "file2"

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

为了提取一组文件,我们使用基于通配符的提取。例如,提取一组模式以.php从一个tar, tar.gz, and tar.bz2存档文件。

  1. # tar -xvf Phpfiles-org.tar --wildcards '*.php'
  2. # tar -zxvf Phpfiles-org.tar.gz --wildcards '*.php'
  3. # tar -jxvf Phpfiles-org.tar.bz2 --wildcards '*.php'
  4. /home/php/iframe_ew.php
  5. /home/php/videos_all.php
  6. /home/php/rss.php
  7. /home/php/index.php
  8. /home/php/vendor.php
  9. /home/php/video_title.php
  10. /home/php/report.php
  11. /home/php/video.php

15. 在 Linux 中将文件或目录添加到 tar 归档文件

要将文件或目录添加到现有的 tar 存档文件,我们使用选项r(append)。比如我们添加文件xyz.txt和目录php对现有的rumenz-14-09-12.tar存档文件。

  1. # tar -rvf rumenz-14-09-12.tar xyz.txt
  2. # tar -rvf rumenz-14-09-12.tar php
  3. drwxr-xr-x root/root 0 2012-09-15 02:24:21 home/rumenz/
  4. -rw-r--r-- root/root 15740615 2012-09-15 02:23:42 home/rumenz/cleanfiles.sh
  5. -rw-r--r-- root/root 863726 2012-09-15 02:23:41 home/rumenz/openvpn-2.1.4.tar.gz
  6. -rw-r--r-- root/root 21063680 2012-09-15 02:24:21 home/rumenz/rumenz-14-09-12.tar
  7. -rw-r--r-- root/root 4437600 2012-09-15 02:23:41 home/rumenz/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
  8. -rw-r--r-- root/root 12680 2012-09-15 02:23:41 home/rumenz/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
  9. -rw-r--r-- root/root 0 2012-08-18 19:11:04 xyz.txt
  10. drwxr-xr-x root/root 0 2012-09-15 03:06:08 php/
  11. -rw-r--r-- root/root 1751 2012-09-15 03:06:08 php/iframe_ew.php
  12. -rw-r--r-- root/root 11220 2012-09-15 03:06:08 php/videos_all.php
  13. -rw-r--r-- root/root 2152 2012-09-15 03:06:08 php/rss.php
  14. -rw-r--r-- root/root 3021 2012-09-15 03:06:08 php/index.php
  15. -rw-r--r-- root/root 2554 2012-09-15 03:06:08 php/vendor.php
  16. -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存档文件。如果我们尝试会得到以下错误。

  1. # tar -rvf MyImages-14-09-12.tar.gz xyz.txt
  2. # tar -rvf Phpfiles-org.tar.bz2 xyz.txt
  3. tar: This does not look like a tar archive
  4. tar: Skipping to next header
  5. xyz.txt
  6. tar: Error exit delayed from previous errors

17. 如何验证 tar、tar.gz 和 tar.bz2 存档文件

要验证任何 tar 或压缩存档文件,我们使用该选项W(verify)。为此,只需使用以下命令示例。(Note:您不能对压缩的 (*.tar.gz, *.tar.bz2) 存档文件)。

  1. # tar tvfW rumenz-14-09-12.tar
  2. tar: This does not look like a tar archive
  3. tar: Skipping to next header
  4. tar: Archive contains obsolescent base-64 headers
  5. tar: VERIFY FAILURE: 30740 invalid headers detected
  6. Verify -rw-r--r-- root/root 863726 2012-09-15 02:23:41 /home/rumenz/openvpn-2.1.4.tar.gz
  7. Verify -rw-r--r-- root/root 21063680 2012-09-15 02:24:21 /home/rumenz/rumenz-14-09-12.tar
  8. tar: /home/rumenz/rumenz-14-09-12.tar: Warning: Cannot stat: No such file or directory
  9. Verify -rw-r--r-- root/root 4437600 2012-09-15 02:23:41 home/rumenz/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
  10. tar: /home/rumenz/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm: Warning: Cannot stat: No such file or directory
  11. Verify -rw-r--r-- root/root 12680 2012-09-15 02:23:41 home/rumenz/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
  12. tar: /home/rumenz/rpmforge-release-0.5.2-2.el5.rf.i386.rpm: Warning: Cannot stat: No such file or directory
  13. Verify -rw-r--r-- root/root 0 2012-08-18 19:11:04 xyz.txt
  14. 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存档文件,使用以下命令。例如,下面的命令将以千字节(KB)。

  1. # tar -czf - rumenz-14-09-12.tar | wc -c
  2. 12820480
  3. # tar -czf - MyImages-14-09-12.tar.gz | wc -c
  4. 112640
  5. # tar -czf - Phpfiles-org.tar.bz2 | wc -c
  6. 20480

返回笔记列表
入门小站