-1

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

4

1 回答 1

0

您可以列出文件详细信息、按大小排序、选择前 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真正的提取。
于 2019-09-13T22:33:50.887 回答