2

a.zip b.zip在一个文件夹中有许多压缩文件等等​​。我想将它们解压缩并放入相应的目录中a,b。你能建议我一些 unix 脚本吗?

4

3 回答 3

6

应该不难(未经测试!):

#!/bin/bash

for zip in *.zip ; do
    dir=${zip%.zip}
    mkdir "$dir"
    unzip -rd "$dir" "$zip"
done
于 2012-07-24T10:30:35.327 回答
1

上一篇文章帮助我实现了同样的功能;我什至创建了一个脚本来帮助我在计算机上记住:

$ ls *.zip|awk -F'.zip' '{print "unzip "$0" -d "$1}'|sh

同样,您可以创建一个alias来执行一个bash函数:

$ alias munzip='for f in *.zip; do unzip -d "${f%*.zip}" "$f"; done'

对于试运行,请事先对其进行测试:

$ alias testmunzip='for f in *.zip; do echo unzip -d "${f%*.zip}" "$f"; done'

只是认为将这些相关信息保留在一个页面上可能会有所帮助,以防其他人正在寻找相同的效果。

于 2013-02-19T04:51:36.993 回答
1

您可以在 unzip 中使用 unzip 实用程序,如下所示:

    #!/bin/bash

    for f in *.zip
    do
        echo "unzipping $f"
        unzip $f -d ${f%.*}
    done

在目录中运行此脚本将根据需要解压缩其中的所有 zip 文件,例如 a.zip,b.zip 将分别解压缩到目录 a 和 b。

于 2012-07-24T10:32:10.987 回答