【发布时间】:2014-05-07 01:52:47
【问题描述】:
我创建了一个脚本,它将提取所有 *.tar.gz 文件。这个文件解压了五次.tar.gz文件,但问题是只解压了第一个*.tar.gz文件。
for file in *.tar.gz; do
gunzip -c "$file" | tar xf -
done
rm -vf "$file"
我该怎么做?非常感谢答案。
【问题讨论】:
-
请改写你的问题,很难理解你在问什么。如果您的问题是解压后只有一个文件被删除,那是因为您的
rm -vf语句不在您的 for 循环中。它需要在done之前。 -
我的问题是关于解压 tar.gz 文件,它被解压了 5 次,问题是我只解压了一次。循环必须提取所有 tar.gz 文件
-
所以,你在启动时目录中有5个
.tar.gz文件;您运行带有循环的脚本;它提取同一个文件 5 次而不是每次提取 5 个文件?当您使用bash -x yourscript.sh运行时会发生什么?你能显示它的输出吗?你有没有想过使用tar -xvf -?您在哪个平台上需要手动执行gunzip- 因为 GNUtar会自动处理解压缩?