每个 Linux 系统管理员的 21 个有用的 Tar 命令示例

Linux“tar”代表磁带存档,大量 Linux/Unix 系统管理员使用它来处理 Linux 中的磁带驱动器备份。

tar 命令用于将文件和目录的集合翻录成高度压缩的存档文件,在 Linux 中通常称为 tarball 或 tar、gzip 和 bzip。

tar 是最广泛使用的创建压缩归档文件的命令,这些文件可以轻松地从一个磁盘移动到另一个磁盘或机器到机器。

Linux Tar 命令示例Linux Tar 命令示例

在本文中,我们将回顾和讨论各种 tar 命令示例,包括如何使用(tar、tar.gz 和 tar.bz2)压缩创建存档文件、如何提取存档文件、提取单个文件、查看文件内容、验证文件、将文件或目录添加到现有存档文件、估计 tar 存档文件的大小等。

[您可能还喜欢:7-Zip – 以高压缩比压缩和解压缩文件]

本指南的主要目的是提供各种 tar 命令示例,这些示例可能有助于您理解并成为 tar 归档操作专家。

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

下面的 tar 命令示例将为当前工作目录中的目录 /home/tecmint 创建一个 tar 归档文件 tecmint-14-09-12.tar。

请参阅 tar 命令的示例。

# tar -cvf tecmint-14-09-12.tar /home/tecmint/

/home/tecmint/
/home/tecmint/cleanfiles.sh
/home/tecmint/openvpn-2.1.4.tar.gz
/home/tecmint/tecmint-14-09-12.tar
/home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
/home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

让我们讨论上述 tar 命令中用于创建 tar 归档文件的每个选项。

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

2. 在 Linux 中创建 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. 在 Linux 中创建 tar.bz2 归档文件

bz2 功能压缩并创建一个小于 gzip 大小的存档文件。bz2 压缩比 gzip 需要更多时间来压缩和解压缩文件,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. 在 Linux 中解压 tar 存档文件

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

如果要在不同的目录中解压缩,请使用选项 -C(指定目录)。

## Untar files in Current Directory ##
# tar -xvf public_html-14-09-12.tar

## 解压指定目录中的文件##
# 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. 在 Linux 中解压 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. 在 Linux 中解压 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.列出Linux中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 上传进度/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 包.xml

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

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

# tar -tvf staging.tecmint.com.tar.gz

-rw-r–r– 根/根 0 2012-08-30 04:03:57 staging.tecmint.com-access_log
-rw-r–r– 根/根 587 2012-08-29 18: 35:12 staging.tecmint.com -access_log.1
-rw-r–r– root/root 156 2012-01-21 07:17:56 staging.tecmint.com-access_log.2
-rw-r– r– 根/根 156 2011-12-21 11:30:56 staging.tecmint.com-access_log.3
-rw-r–r– 根/根 156 2011-11-20 17:28:24 分期.tecmint.com-access_log.4
-rw-r–r– 根/根 0 2012-08-30 04:03:57 staging.tecmint.com-error_log
-rw-r–r– 根/根3981 2012-08-29 18:35:12 staging.tecmint.com-error_log.1
-rw-r–r– root/root 211 2012-01-21 07:17:56 staging.tecmint.com-error_log .2
-rw-r–r– 根/根 211 2011-12-21 11:30:56 staging.tecmint.com-error_log.3
-rw-r–r– 根/根 211 2011-11-20 17:28:24 staging.tecmint.com-error_log.4

9. Linux 中列出内容 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– 根/根 11220 2012-09-15 03:06:08 /home/php/videos_all.php
-rw-r–r– 根/根 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– 根/根 2554 2012-09-15 03:06:08 /home/php/vendor.php
-rw-r–r– 根/根 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–根/根 1273 2012-09-15 03:06:08 /home/php/object.html

10. 在 Linux 中从 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. 在 Linux 中从 tar.gz 文件中解压单个文件

要从 tecmintbackup.tar.gz 归档文件中提取单个文件 tecmintbackup.xml,请使用以下命令。

# tar -zxvf tecmintbackup.tar.gz tecmintbackup.xml
OR
# tar --extract --file=tecmintbackup.tar.gz tecmintbackup.xml

技术备份.xml

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

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

# 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 tecmint-14-09-12.tar "file1" "file2"

# tar -zxvf MyImages-14-09-12.tar.gz “file1” “file2”

# tar -jxvf Phpfiles-org.tar.bz2 “file1” “file2”

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

为了提取一组文件,我们使用基于通配符的提取。例如,要从 tar、tar.gz 和 tar.bz2 归档文件中提取模式以 .php 开头的所有文件组。

# 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. 在 Linux 中将文件或目录添加到 tar 存档文件

要将文件或目录添加到现有的 tar 归档文件,我们使用选项 r(附加)。例如,我们将文件 xyz.txt 和目录 php 添加到现有的 tecmint-14-09-12.tar 归档文件中。

# tar -rvf tecmint-14-09-12.tar xyz.txt

# tar -rvf tecmint-14-09-12.tar php

drwxr-xr-x root/root 0 2012-09-15 02:24:21 home/tecmint/
-rw-r–r– root/root 15740615 2012-09-15 02:23:42 home/tecmint/ cleanfiles.sh
-rw-r–r– root/root 863726 2012-09-15 02:23:41 home/tecmint/openvpn-2.1.4.tar.gz
-rw-r–r– root/ root 21063680 2012-09-15 02:24:21 home/tecmint/tecmint-14-09-12.tar
-rw-r–r– root/root 4437600 2012-09-15 02:23:41 home/ tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
-rw-r–r– root/root 12680 2012-09-15 02:23:41 home/tecmint/rpmforge-release-0.5。 2-2.el5.rf.i386.rpm
-rw-r–r– 根/根 0 2012-08-18 19:11:04 xyz.txt
drwxr-xr-x 根/根 0 2012-09- 15 03:06:08 php/
-rw-r–r– 根/根 1751 2012-09-15 03:06:08 php/iframe_ew.php
-rw-r–r– 根/根 11220 2012 -09-15 03:06:08 php/videos_all.php
-rw-r–r– 根/根 2152 2012-09-15 03:06:08 php/rss.php
-rw-r–r– 根/根 3021 2012-09-15 03:06: 08 php/index.php
-rw-r–r– 根/根 2554 2012-09-15 03:06:08 php/vendor.php
-rw-r–r– 根/根 406 2012-09 -15 03:06:08 php/video_title.php

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

tar 命令没有将文件或目录添加到现有压缩 tar.gz 和 tar.bz2 存档文件的选项。如果我们尝试将得到以下错误。

# tar -rvf MyImages-14-09-12.tar.gz xyz.txt

# tar -rvf Phpfiles-org.tar.bz2 xyz.txt

tar:这看起来不像 tar 存档
tar:跳到下一个标题
xyz.txt
tar:错误退出因先前的错误而延迟

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

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

# tar tvfW tecmint-14-09-12.tar

tar:这看起来不像 tar 存档
tar:跳到下一个标头
tar:存档包含过时的 base-64 标头
tar:验证失败:检测到 30740 个无效标头
验证 -rw-r–r– root/root 863726 2012- 09-15 02:23:41 /home/tecmint/openvpn-2.1.4.tar.gz
验证-rw-r–r– root/root 21063680 2012-09-15 02:24:21 /home/tecmint /tecmint-14-09-12.tar
tar: /home/tecmint/tecmint-14-09-12.tar: 警告:无法统计:没有这样的文件或目录
验证 -rw-r–r– root/root 4437600 2012-09-15 02:23:41 home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm
焦油:/home/tecmint/phpmyadmin-2.11.11.3-1.el5.rf.noarch .rpm:警告:无法统计:没有这样的文件或目录
验证 -rw-r–r– root/root 12680 2012-09-15 02:23:41 home/tecmint/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
tar: /home/ tecmint/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/

18. 检查 tar、tar.gz 和 tar.bz2 存档文件的大小

要检查任何 tar、tar.gz 和 tar.bz2 归档文件的大小,请使用以下命令。例如,以下命令将以千字节 (KB) 为单位显示存档文件的大小。

# tar -czf - tecmint-14-09-12.tar | wc -c
12820480

# tar -czf – MyImages-14-09-12.tar.gz | 厕所-c
112640

# tar -czf – Phpfiles-org.tar.bz2 | 厕所-c
20480

19. 创建tar文件时排除文件和目录

要在创建 tar.gz 文件时排除某些文件和目录,您可以使用以下命令和--exclude一个选项,该选项将在创建 tar 存档文件时排除文件和目录,如图所示。

# tar --exclude="file1.txt" -zcvf backup.tar.gz /home/tecmint
# tar --exclude="/home/tecmint/uploads" -zcvf backup.tar.gz /home/tecmint

在上面的命令中,我们从 /home/tecmint 文件夹中排除了文件 ‘file1.txt’ 和 ‘uploads’ 目录。

(.txt)要在创建 tar 归档文件时排除具有特定文件扩展名的文件,请使用:

# tar --exclude="*.txt" -zcvf backup.tar.gz /home/tecmint

20. 从 Tar 存档中删除文件和目录

以下 tar 命令将使用--delete所示选项从已创建的 tar 文件中删除文件或目录。

# tar --delete -f backup.tar.gz file1.txt
# tar --delete -f backup.tar.gz '/home/tecmint/uploads'

21. 提取 Tar Archive 中的特定文件扩展名

以下 tar 命令将仅使用所示选项.png从 tar 存档文件中提取具有特定扩展名的文件。--wildcards

# tar -xvf backup.tar.gz --wildcards '*.png'

22. 有用的 tar 命令用法和选项

  • -c– 创建一个存档文件。
  • -x– 提取存档文件。
  • -v– 显示存档文件的进度。
  • -f– 存档文件的文件名。
  • -t– 查看存档文件的内容。
  • -u– 存档并添加到现有存档文件。
  • -j– 通过 bzip2 过滤存档。
  • -z– 通过 gzip 过滤存档。
  • -r– 将文件或目录附加或更新到现有存档文件。
  • -W– 验证存档文件。
  • -A– 连接存档文件。
  • --wildcards– 在 UNIX tar 命令中指定模式。
  • --exclude– 创建档案时排除文件和目录。
  • --delete– 从存档中删除文件和目录。

到此为止,希望以上 tar 命令示例足以让您学习,更多信息请使用 man tar 命令。

# man tar

如果您希望将任何大型 tar 存档文件拆分为多个部分或块,只需阅读这篇文章:

如果我们错过了任何示例,请通过评测框与我们分享,请不要忘记与您的朋友分享这篇文章。这是表达感谢的最佳方式……

 

资讯来源:由0x资讯编译自THEAPPLEPOST。版权归作者Ravi Saive所有,未经许可,不得转载
你可能还喜欢