【发布时间】:2017-07-18 14:06:53
【问题描述】:
我需要解压缩一些档案,我想加快这个过程。 这是我的一段脚本:
for archive in $path; do
STEM=$(basename "${archive}" .gz)
gunzip -c $archive > $here/$STEM
done
for file in `ls "$here"`; do
... processing ...
done
有没有办法一次解压缩多个(所有)档案并等待完成?
换句话说,我需要这样的东西:
for archive in $path; do
... parallel unzip ...
done
WAIT
for file in `ls "$here"`; do
... processing ...
done
谢谢
【问题讨论】:
-
你真的不想像那样解析
ls的输出;只需使用 glob:for file in "$here"/*;. -
@TobySpeight
for file in ls $path和for file in $path有什么区别? -
不多 - 如果任何文件名可能包含空格,它们都是不安全的。最好将
path设为 Bash 数组,并使用for archive in "${path[@]}"对其进行迭代。