Linux中的tar命令和用法示例

2021年5月1日18:02:27 发表评论 152 次浏览

Linux的" tar"代表磁带存档, 用于创建存档并提取存档文件。 Linux中的tar命令是在Linux中提供归档功能的重要命令之一。我们可以使用Linux tar命令来创建压缩或未压缩的存档文件, 并维护和修改它们。

语法如下:

tar [options] [archive-file] 

选项:

-C:创建档案

-X :提取档案

-F :用给定的文件名创建档案

-t:显示或列出存档文件中的文件

-u:存档并添加到现有存档文件

-v:显示详细信息

-A :连接存档文件

-z:zip, 告诉tar命令使用gzip创建tar文件

-j:使用tbzip过滤存档tar文件

-W:验证档案文件

-r:在已存在的.tar文件中更新或添加文件或目录

什么是存档文件?

存档文件是由一个或多个文件以及元数据组成的文件。存档文件用于将多个数据文件收集到一个文件中, 以便于移植和存储, 或者只是压缩文件以使用较少的存储空间。

例子:

1.使用选项-cvf创建未压缩的tar存档:

此命令将创建一个名为file.tar的tar文件, 该文件是当前目录中所有.c文件的存档。

$ tar cvf file.tar *.c

输出:

os2.c
os3.c
os4.c

2.使用选项-xvf从存档中提取文件:此命令从存档中提取文件。

$ tar xvf file.tar

输出:

os2.c
os3.c
os4.c

3.使用选项-z在tar存档上进行gzip压缩:此命令创建一个名为file.tar.gz的tar文件, 它是.c文件的存档。

$ tar cvzf file.tar.gz *.c

4.使用选项-xvzf提取gzip tar存档* .tar.gz:此命令从tar存档的file.tar.gz文件中提取文件。

$ tar xvzf file.tar.gz

5.使用选项-j在Linux中创建压缩的tar存档文件:此命令压缩并创建小于gzip大小的存档文件。压缩和解压缩都比gzip花费更多的时间。

$ tar cvfj file.tar.tbz example.cpp

输出:

$tar cvfj file.tar.tbz example.cpp
example.cpp
$tar tvf file.tar.tbz
-rwxrwxrwx root/root        94 2017-09-17 02:47 example.cpp

6.在Linux中解压缩单个tar文件或指定的目录:此命令将使用-C选项将当前目录或指定目录中的文件解压缩。

$ tar xvfj file.tar 
or 
$ tar xvfj file.tar -C path of file in directoy

7.在Linux中解压缩多个.tar, .tar.gz, .tar.tbz文件:此命令将从tar, tar.gz和tar.bz2存档文件中提取或解压缩多个文件。例如, 上述命令将从存档文件中提取" fileA"" fileB"。

$ tar xvf file.tar "fileA" "fileB" 
or 
$ tar zxvf file1.tar.gz "fileA" "fileB"
or 
$ tar jxvf file2.tar.tbz "fileA" "fileB"

8.检查Linux中现有tar, tar.gz, tar.tbz文件的大小:上面的命令将显示存档文件的大小, 以千字节(KB)为单位。

$ tar czf file.tar | wc -c
or 
$ tar czf file1.tar.gz | wc -c
or 
$ tar czf file2.tar.tbz | wc -c

9.更新Linux中现有的tar文件

$ tar rvf file.tar *.c

输出:

os1.c

10.列出内容并使用选项-tf指定tarfile:此命令将列出存档文件的整个列表。我们还可以在tarfile中列出特定内容

$ tar tf file.tar

输出:

example.cpp

11.通过" grep命令"将管道应用到以查找我们要查找的内容:此命令将仅列出归档文件中grep中提到的文本或图像。

$ tar tvf file.tar | grep "text to find" 
or
$ tar tvf file.tar | grep "filename.file extension"

12.我们可以传递一个文件名作为搜索tarfile的参数:该命令查看存档文件及其详细信息。

$ tar tvf file.tar filename

13.使用-tvf选项查看存档

$ tar tvf file.tar

输出:

-rwxrwxrwx root/root       191 2017-09-17 02:20 os2.c
-rwxrwxrwx root/root       218 2017-09-17 02:20 os3.c
-rwxrwxrwx root/root       493 2017-09-17 02:20 os4.c

什么是Linux中的通配符

通配符也称为"通配符"或"通配符", 是用于替换或表示一个或多个字符的符号。通配符通常是代表一个或多个字符的星号(*)或代表单个字符的问号(?)。

示例:

14.要搜索.png格式的图像:

这只会从存档file.tar中提取扩展名为.png的文件。 –wildcards选项告诉tar用文件名解释通配符

被提取;文件名(* .png)用单引号引起来, 以防止通配符(*)被shell错误地扩展。

$ tar tvf file.tar --wildcards '*.png'

注意:在上面的命令中, " *"代替文件名用于获取该特定目录中存在的所有文件。

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: