【发布时间】:2014-04-30 14:01:35
【问题描述】:
我有 5 个 zip 文件,每个文件里面都有几个 .txt 文件和一些其他文件。我只想解压缩扩展名为.txt 的文件,但在循环的第一次迭代中unzip 正确运行,“*.txt”被视为常量字符串,并且在所有后续迭代中unzip 尝试解压缩文件完全相同的文件名(即之前 zip 文件中的那些文件)。
for file in *.zip
do
unzip ${file} *.txt
done
例如,在第一个循环中,它采用 1.zip 并解压缩,例如file1.txt 然后它进入第二个循环,它需要2.zip 并尝试再次提取file1.txt - 而不是从2.zip 中选择所有.txt 文件。
【问题讨论】:
-
你给出的例子有什么问题?
-
在第一个循环中,它需要 1.zip 并解压缩,例如file1.txt 然后进入第二个循环,它需要 2.zip 并尝试解压缩 file1.txt - 而不是从 2.zip 获取 .txt 文件。
-
你是说第二个和后续的zip文件中的txt文件与第一个同名,并且覆盖它们?
-
不,在每个 zip 中,.txt 文件的名称都不同。在 1.zip 中我有 file1.txt,在 2.zip file2.txt 中,但是当它在第二个循环中时,它不会更新这个“*.txt”名称并且只解压缩 file1.txt(它不存在于这个拉链)。