【问题标题】:Extract 3 smallest files from Tar archive in descending order by size [duplicate]按大小降序从 Tar 存档中提取 3 个最小的文件 [重复]
【发布时间】:2020-01-15 18:10:30
【问题描述】:

如何使用命令行从 Linux 的 Tar 文件中按降序提取 3 个最小的文件?

【问题讨论】:

标签: linux file extract tar


【解决方案1】:

您可以列出文件详细信息,按大小排序,选择前 3 个文件,构建tar x 命令,然后执行以提取 3 个文件:

 tar tvf foo.tar
       |awk '$0=$3"\x99"$NF'
       |sort -n
       |awk -F'\x99' 'NR<4{s=s" "$2}END{print "tar xvf foo.tar "s}'
       |sh

注意:

  • 上述单行代码假定 tarball 中的所有文件名不包含空格或其他特殊字符
  • tarball 名称 foo.tar 是硬编码的。您应该用真正的 tarball 替换它
  • 你可以在没有最后一个管道的情况下测试cmd:|sh它只会输出生成的tar -x命令,如果没问题,你可以管道到|sh进行真正的提取。

【讨论】:

    猜你喜欢
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2020-04-04
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多