按大小降序从 Tar 存档中提取 3 个最小的文件
Extract 3 smallest files from Tar archive in descending order by size
如何使用命令行从 Linux 中的 Tar 文件中按降序提取 3 个最小的文件?
您可以列出文件详细信息,按大小排序,选择前 3 个文件,构建 tar x
命令,然后执行提取 3 个文件:
tar tvf foo.tar
|awk '[=10=]="\x99"$NF'
|sort -n
|awk -F'\x99' 'NR<4{s=s" "}END{print "tar xvf foo.tar "s}'
|sh
注:
- 以上一行假设压缩包中的所有文件名都不包含空格或其他特殊字符
- tarball 名称
foo.tar
是硬编码的。,您应该用真正的 tarball 替换它
- 你可以在没有最后一个管道的情况下测试cmd:
|sh
它只会输出生成的tar -x
命令,如果没问题,你可以管道到|sh
做真正的萃取。
如何使用命令行从 Linux 中的 Tar 文件中按降序提取 3 个最小的文件?
您可以列出文件详细信息,按大小排序,选择前 3 个文件,构建 tar x
命令,然后执行提取 3 个文件:
tar tvf foo.tar
|awk '[=10=]="\x99"$NF'
|sort -n
|awk -F'\x99' 'NR<4{s=s" "}END{print "tar xvf foo.tar "s}'
|sh
注:
- 以上一行假设压缩包中的所有文件名都不包含空格或其他特殊字符
- tarball 名称
foo.tar
是硬编码的。,您应该用真正的 tarball 替换它 - 你可以在没有最后一个管道的情况下测试cmd:
|sh
它只会输出生成的tar -x
命令,如果没问题,你可以管道到|sh
做真正的萃取。