在linux中解压缩有限数量的文件

时间:2014-03-07 06:22:14

标签: unzip

我有一个包含10,000个压缩文件的压缩文件。是否有Linux命令/ bash脚本只能解压缩1,000个文件?请注意,所有压缩文件都具有相同的扩展名。

4 个答案:

答案 0 :(得分:3)

unzip -Z1 test.zip | head -1000 | sed 's| |\\ |g' | xargs unzip test.zip
  • -Z1提供原始文件列表
  • sed表达式编码空格(无处不在,包括MacOS)

答案 1 :(得分:1)

您可以使用通配符选择文件的子集。 E.g。

  • 提取以b:

    开头的所有包含文件

    解压缩some.zip b *

  • 提取名称以y:

    结尾的所有包含文件

    解压缩some.zip * y.extension

您可以选择足够接近的通配符模式,也可以仔细检查unzip -l some.zip的输出,以确定能够获得正确数字的模式或模式集。

答案 2 :(得分:1)

我这样做了:

unzip -l zipped_files.zip |head -1000 |cut -b 29-100 >list_of_1000_files_to_unzip.txt
我用cut来获取文件名,前3列是大小等。

现在遍历文件名:

for files in `cat list_of_1000_files_to_unzip.txt `; do unzip zipped_files.zip $files;done

答案 3 :(得分:0)

一些建议:

  • 执行zip以仅列出文件,将输出重定向到某个文件
  • 截断此文件以仅获得前1000行
  • 将文件传递给zip以仅提取指定的文件