通过 bash 仅提取具有特定扩展名的文件

Extract only files with specific extension via bash

我第一次需要创建一个 .sh 来做某事。我的目标是解压很多 zip 文件夹,所以我写了下面的脚本:

for zipfiles in /downloads/*.zip; do unzip $zipfiles; done

我可以全部解压,但我注意到有一些文件具有相同的名称并键入 y我可以完成这个过程。

有没有办法只提取具有特定扩展名的文件,例如 .docx,而不是整个 zip 文件夹?我绝对确定没有 .docx 同名。

您可以指定一个模式:

for zipfiles in /downloads/*.zip; do unzip "$zipfiles" '*.docx'; done

经测试可与 UnZip 6.00 一起使用。

您还可以指定 -x 选项进行排除。

试试这个,它对你的目的有用。

for zipfiles in /downloads/*.zip; do unzip -xo "$zipfiles" '*.docx' ; done

通过此选项在不提示的情况下覆盖文件。