Linux 中的 tar 命令及示例
Linux 'tar' 代表磁带存档,用于创建存档和提取存档文件。 Linux 中的tar 命令是Linux 中提供归档功能的重要命令之一。我们可以使用 Linux tar 命令来创建压缩或未压缩的 Archive 文件,并对其进行维护和修改。
句法:
tar [options] [archive-file] [file or directory to be archived]
选项:
-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. 在 Linux 中使用选项 -j 创建压缩的 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 directory
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'
注意:在上面的命令中,“*”用于代替文件名以获取该特定目录中存在的所有文件。