BASH脚本-直接解压缩和删除gz文件
我需要执行两个解压缩:tar和内部gz。 下面是我在bash脚本中使用的代码:BASH脚本-直接解压缩和删除gz文件,bash,gzip,gunzip,Bash,Gzip,Gunzip,我需要执行两个解压缩:tar和内部gz。 下面是我在bash脚本中使用的代码: for filename in $path; do tar -xf $filename -C $untar/$num for nc_gz in `ls "$untar"/"$num"/*`; do gunzip $nc_gz done for nc in `ls "$untar"/"$num"/*`; do ... done do
for filename in $path; do
tar -xf $filename -C $untar/$num
for nc_gz in `ls "$untar"/"$num"/*`; do
gunzip $nc_gz
done
for nc in `ls "$untar"/"$num"/*`; do
...
done
done
它的工作原理与预期的一样:每个tar包含N个gz归档文件,这些文件被解压缩和删除,同时保留内部未压缩的文件
但是,为了节省磁盘空间,我想一次解压缩一个gz
我试过这个:
for filename in $path; do
tar -xf $filename -C $untar/$num
done
for nc_gz in `ls "$untar"/"$num"/*`; do
STEM=$(basename "${nc_gz}" .gz)
gunzip -c $nc_gz > $untar/$num/$STEM
nc="$untar"/"$num"/$STEM
.....
rm $nc
done
但是gunzip操作也保留了gz文件
如何编辑代码以实现目标
谢谢您最好在“$untar”/“$num”/*中为nc_gz使用
;执行
而不使用反勾号或$(…)进行命令替换。您还应该在$STEM
周围使用双引号。然而,这与你的问题无关。你的目标并不明确。普通的gunzip“$nc_gz”
将删除.gz
文件,并将内容解压到具有正确名称的A文件中。@JonathanLeffler我刚刚测试了第二个代码块,没有-c选项,它可以正常工作。是否删除该问题,或者你更愿意写一篇文章作为答案?@JonathanLeffler如果你愿意,你可以回答我的问题,这样我就可以把它选为最佳答案。这是一个火花来测试我的代码