你能帮我理解这些TAR,SPLIT命令吗?

时间:2014-02-18 02:42:38

标签: bash split tar

这些命令行是什么意思?

  1. tar cvzf - ./android_4.0.4_origen_final_full/ | split -b 2048m - android_4.0.4_origen_final_full.tar.gz

  2. cat android_4.0.4_origen_final_full.tar.gz* | tar -zxvpf - -C /work

2 个答案:

答案 0 :(得分:1)

我建议使用谷歌搜索“man tar”,“man split”和“man cat”了解有关选项的详细信息。

tar是一个程序(tar,最初是“磁带归档”的缩写),它创建了一个串行归档格式。它用于将完整文件的整个目录结构整合到一个存档文件或备份设备(磁带,磁盘或其他)上。

split将获取一个文件并将其分解为给定大小的块。

tar cvzf - ./android_4.0.4_origen_final_full/ | split -b 2048m - android_4.0.4_origen_final_full.tar.gz

此命令将创建./android_4.0.4_origen_final_full/下所有文件的存档,而不是创建单个存档文件,将结果(通过split)分成几个2,048MB(2GB)文件。具体来说,c上的tar选项表示“创建”,v表示“详细”(您将为每个归档的文件获取输出行),z表示将被压缩(使用gzip),f表示输出文件。由于输出文件是-,因此输出转到标准输出(因此,它可以通过管道输入split)。 split选项-b 2048m表示输出将拆分为2GB大小的文件。因此,如果存档为3GB,您将获得一个2GB的文件和一个1GB的文件。

cat android_4.0.4_origen_final_full.tar.gz* | tar -zxvpf - -C /work

这与第一个命令相反。它连接当前文件夹中名称以android_4.0.4_origen_final_full.tar.gz开头的所有文件,并使用tar取消归档。 tar选项与上述选项相同,但x表示“提取”,p表示“保留”文件权限,而f -表示从中获取输入标准输入(在本例中来自cat命令),C /work告诉tar更改为/work目录以进行提取。

答案 1 :(得分:0)

第一个命令创建在2KB块上拆分的多个tar.gz文件,而第二个命令将tart.gz文件的内容提取到/ work目录中。它使用管道“|”将一个shell命令的输出连接到另一个shell命令的输入(stdin)。

tar cvzf - ./android_4.0.4_origen_final_full/ 

创建android_4.0.4_origen_final_full文件夹下的所有内容的tar文件(所有数据连续排列的文件)并使用gzip压缩压缩tar文件,为其提供额外的.gz扩展名。输出通过管道输出或发送到以下命令。

split -b 2048m - 

在2KB块上拆分stdin上提供的输入(来自先前的tar命令),创建具有基本名称的各个tar抓取文件: android_4.0.4_origen_final_full.tar.gz

cat android_4.0.4_origen_final_full.tar.gz*

将filename参数的原始内容转储到屏幕或(stdout)

tar -zxvpf - -C /work

从输入(stdin)到/ work文件夹

提取所有内容