Linux系统“ tar ”一词表示磁带存档,大量Linux/Unix系统管理员使用它来处理Linux中的磁带驱动器备份。
Linux中的tar命令用于将文件和目录的集合转换为高度压缩的存档文件,在Linux中通常称为tarball或tar、gzip和bzip。
实际上,tar是最广泛使用的命令,用于创建压缩存档文件,可以轻松地将这些文件从一个磁盘移动到另一个磁盘或从一台机器移动到另一台机器,基本上Linux用户每天都需要用到它。
在本文中,小编将整理和介绍各种tar命令示例,包括如何使用(tar、tar.gz和tar.bz2)压缩创建存档文件、如何提取存档文件、提取单个文件、查看文件内容、验证文件、向现有归档文件添加文件或目录、估计tar归档文件的大小等。
1、创建Tar存档文件
下面的tar命令示例将为当前工作目录中的/home/ecscoupon目录创建一个tar存档文件,即ecscoupon-01-12-2023.tar
:
tar -cvf ecscoupon-01-12-2023.tar /home/ecscoupon/
上面tar命令中使用的每个选项释义如下:
c
– 创建新的.tar存档文件。v
– 详细显示.tar文件进度。f
– 归档文件的文件名类型。
tar命令一般用于文档备份。
2、创建压缩的Tar存档
要创建压缩存档文件,使用'z'
选项(gzip压缩存档)。例如,下面的命令将生成一个以目录“ /home/ecscoupon/MyImages ”命名的'MyImages-01-12-2023.tar.gz'
压缩文件。(注:'tar.gz'
和'tgz'
是可互换术语)。
tar cvzf MyImages-01-12-2023.tar.gz /home/ecscoupon/MyImages 或者 tar cvzf MyImages-01-12-2023.tgz /home/ecscoupon/MyImages
3、在Linux中创建tar.bz2文件
bz2功能压缩并创建一个比gzip更小的存档文件。但是,bz2压缩方法在压缩和解压缩方面都需要更多时间,而gzip在这两个过程中都更快。
要通过捆绑/home/ecscoupon/php目录中的所有文件和子目录来创建名为Phpfiles-org.tar.bz2 的高度压缩的新tar存档,请使用-j
选项,该选项指示tar使用bzip2压缩算法,从而产生更小的文件大小以实现高效存储和传输。
注意:tar.bz2和tbz是类似的术语,都指tb2。
tar cvfj Phpfiles-org.tar.bz2 /home/ecscoupon/php 或者 tar cvfj Phpfiles-org.tar.tbz /home/ecscoupon/php 或者 tar cvfj Phpfiles-org.tar.tb2 /home/ecscoupon/php
4、提取Tar存档
要解压或提取tar文件,只需使用选项'x'
(extract) 执行以下命令即可。例如,下面的命令将在当前工作目录中解压名为“ ecscoupon-01-12-2023.tar ”的文件。
tar -xvf ecscoupon-01-12-2023.tar
如果你想在不同的目录中解压,请使用选项-C
(指定目录)。
tar -xvf ecscoupon-01-12-2023.tar -C /home/ecscoupon/
5、提取压缩的tar.gz存档
要提取名为“ MyImages-01-12-2023.tar.gz”的压缩tar存档文件的内容,请使用以下命令:
tar -xvf MyImages-01-12-2023.tar.gz
如果想在不同的目录中解压,只需使用-C
选项,该选项会将文件解压到指定的目录中,如下所示:
tar -xvf MyImages-01-12-2023.tar.gz -C /home/ecscoupon/
6.、提取tar.bz2存档
要解压缩高度压缩的tar.bz2文件,只需使用以下命令,该命令将从存档文件中解压缩所有文件:
tar -xvf Phpfiles-org.tar.bz2
7、列出tar存档的内容
要列出或查看tar存档文件的内容,只需使用选项-t
(list content) 运行以下命令,该命令将显示“ ecscoupon-01-12-2023.tar”存档中包含的文件和目录的详细列表。
tar -tvf ecscoupon-01-12-2023.tar
8、查看tar.gz存档的内容
以下命令将显示“ MyImages-01-12-2023.tar.gz ”存档中包含的文件和目录的详细列表:
tar -tvf MyImages-01-12-2023.tar.gz
9、输出tar.bz2存档内容
以下命令提供了“ Phpfiles-org.tar.bz2 ”存档中内容的概述,而无需解压文件:
tar -tvf Phpfiles-org.tar.bz2
10、从存档中提取单个文件
要从存档Phpfiles-org.tar.bz2中提取名为wp-cron.php
的单个文件,请使用以下命令。确保提供你要提取的文件的正确路径。
tar -xvf Phpfiles-org.tar.bz2 home/ecscoupon/php/wp-cron.php
11、从存档中提取多个文件
要从tar
、tar.gz
和tar.bz2
存档文件中提取或解压多个文件,请使用以下命令,该命令将从指定的存档文件中提取文件:
tar -xvf ecscoupon-01-12-2023.tar "file1" "file2" tar -zxvf MyImages-01-12-2023.tar.gz "file1" "file2" tar -jxvf Phpfiles-org.tar.bz2 "file1" "file2"
12、使用通配符提取一组文件
为了提取一组文件,我们使用基于通配符的提取。例如,要从tar
、tar.gz
和tar.bz2
归档文件中提取模式以 .php
开头的所有文件组,请使用:
tar -xvf ecscoupon-01-12-2023.tar --wildcards '*.php' tar -zxvf MyImages-01-12-2023.tar.gz --wildcards '*.php' tar -jxvf Phpfiles-org.tar.bz2 --wildcards '*.php'
13、将文件附加到现有存档
要将文件或目录添加到现有的tar
、tar.gz
和tar.bz2
归档文件中,请使用-r
选项,这会将文件添加到现有的归档文件中:
tar -rvf ecscoupon-01-12-2023.tar xyz.txt tar -rvf MyImages-01-12-2023.tar.gz xyz.txt tar -rvf Phpfiles-org.tar.bz2 xyz.txt
14、验证Tar存档文件
以下命令将显示指定存档文件中包含的文件和目录的详细列表,使你可以直观地验证存档的内容。如果存档已损坏或不完整,此验证过程可能会在列出过程中发现错误。
tar -tvf Phpfiles-org.tar.bz2
15、检查Tar存档文件大小
要检查任何tar
、tar.gz
和tar.bz2
存档文件的大小,请使用以下命令,该命令将显示存档文件的大小,以千字节 ( KB ) 为单位:
tar -czf - ecscoupon-01-12-2023.tar xyz.txt | wc -c tar -czf - MyImages-01-12-2023.tar.gz xyz.txt | wc -c tar -czf - Phpfiles-org.tar.bz2 xyz.txt | wc -c
16、创建Tar存档时排除文件
要在创建tar存档文件时排除某些文件和目录,可以使用以下命令以及一个--exclude
选项,该选项将在创建tar存档文件时排除文件和目录,如下所示:
tar --exclude='file1.txt' -zcvf backup.tar.gz /home/ecscoupon tar --exclude='/home/ecscoupon/uploads' -zcvf backup.tar.gz /home/ecscoupon
在上面的命令中,我们从/home/ecscoupon文件夹中排除了文件“ file1.txt ”和“ uploads ”目录。
要在创建tar存档文件时排除具有特定(.txt)
扩展名的文件,请使用:
tar --exclude='*.txt' -zcvf backup.tar.gz /home/ecscoupon
17、从Tar存档中删除文件
以下tar命令将使用--delete
选项从已创建的tar文件中删除文件或目录,命令如下:
tar --delete -f MyImages-01-12-2023.tar.gz file1.txt tar --delete -f MyImages-01-12-2023.tar.gz '/home/ecscoupon/uploads'
18、从Tar存档中提取文件扩展名
以下tar命令将仅使用--wildcards
选项从tar存档文件中提取具有特定.png
扩展名的文件。
tar -xvf MyImages-01-12-2023.tar.gz --wildcards '*.png'
Tar命令用法和选项
了解“ 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和tar.gz的区别
tar
和 tar.gz
是两种不同的文件压缩和打包格式,它们之间的主要区别在于压缩方式。
- tar:
tar
是一个打包工具,用于将多个文件或目录组合成一个单一的文件。- 它不会对文件进行压缩,只是将它们打包到一个文件中,通常以
.tar
为扩展名。 - 示例:创建一个 tar 文件:
tar -cvf archive.tar file1 file2 directory
- tar.gz:
tar.gz
是一种压缩文件格式,它结合了tar
打包和gzip
压缩。- 通过使用
gzip
压缩算法,它可以显著减小文件大小。 - 文件扩展名通常为
.tar.gz
或.tgz
。 - 示例:创建一个 tar.gz 文件:
tar -czvf archive.tar.gz file1 file2 directory
所以,tar
仅打包文件,不进行压缩,生成 .tar
文件,tar.gz
在打包的基础上使用 gzip
压缩,生成 .tar.gz
或 .tgz
文件,文件大小更小。另外,使用 tar.gz
的主要优势在于减小文件大小,特别是对于传输文件或备份文件时,可以减少所需的存储空间和传输时间。