【问题标题】:Can you help me understand these TAR, SPLIT commands?你能帮我理解这些 TAR、SPLIT 命令吗?
【发布时间】:2014-02-18 02:42:38
【问题描述】:

这些命令行是什么意思?

  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

【问题讨论】:

  • 这真的和安卓没有任何关系。它可能应该被标记为 bash/Linux

标签: bash split tar


【解决方案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) 的文件。具体来说,tar 上的c 选项表示“创建”,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 目录进行提取。

【讨论】:

    【解决方案2】:

    第一个命令创建多个 tar.gz 文件,分割成 2KB 块,而第二个命令将 tart.gz 文件的内容提取到 /work 目录中。它使用管道“|”将一个 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 - 
    

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

    cat android_4.0.4_origen_final_full.tar.gz*
    

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

    tar -zxvpf - -C /work
    

    从输入 (stdin) 中提取所有内容到 /work 文件夹

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 2021-01-28
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      相关资源
      最近更新 更多