解压多个 .zip、.gz 或 .bz2

.zip

for file in *.zip; do unzip "${file}"; done

.gz

gunzip *.gz

.bz2

bunzip2 *.bz2

tar.gz

for file in *.tar.gz; do tar zxf "${file}"; done

tar.bz2

for file in *.tar.bz2; do tar jxf "${file}"; done

指命脚本用法

如果你在一个可处理不同压缩档数量的脚本内使用上包含 for 回圈的指令,你可能会想在指命壳中设置启用 nullglobs。举个例说,当没有吻合的文件时,*.tar.gz 这个通配符一般会被评估为 *.tar.gz,而不是空白符串。由於这个原因,tar 会以这串字作为参数去执行。要避免这个情况,请如此要求指命壳使用 nullglobs:

shopt -s nullglob

假若找不到配对,指命壳将会返回空白符串,而 for 回圈亦会中止。

Translation of revision 7

zh/TipsAndTricks/UncompressMultipleFiles (last edited 2010-01-18 03:45:55 by TimothyLee)