我知道这可以针对单个文件完成,例如
gunzip -c my.gz > somedir/my
可以对多个文件执行此操作吗?
[更新] 我有一个包含大量 .gz 文件(不是 .tar.gz)的目录,我想将它们压缩到另一个目录中,同时保持原始文件不变。
答案1
尝试类似
for a in *.gz; do gunzip -c $a > somedir/`echo $a | sed s/.gz//`; done
答案2
这将在 bash 中工作
for FILE in *.gz
do
echo -n "File $FILE... "
gzip -c $FILE > ${FILE%.gz}
echo "Done"
done
在 Andreja 的回答的基础上,添加了文件名的更正。
答案3
假设每个文件都有一个像
foo.bar.gz
basename
(GNU coreutils 8.4)可以为您提供原始未压缩文件的名称,因此我会这样做
for f in /source/dir/*.gz; do t=$(basename $f .gz); gunzip -c $f > /target/dir/$t; done
答案4
听起来像是一份快速 perl/python/ruby/etc 脚本的工作。
只需调整此处的代码例子应用必要的 gunzip 命令。