gtar を使用して余分なファイルを既存のアーカイブに追加すると、ループが途中で終了するかハングします。また、最初の tar.gz ファイルを作成した後に終了します。
ただし、ループから gtar 呼び出しを削除し、代わりに print ステートメントを配置すると、ループは期待どおりに実行されます。これがなぜなのか誰か知っていますか?以下は、ループ内に含まれるコードです。
if (-e "flex_$yearA"."_"."$monthA.tar.gz")
{ print"accessing Flex tar \n";
exec "gtar --append --file=flex_$yearA"."_"."$monthA.tar.gz $FILE";
}
else
{ print "creating Flex Tar \n ";
exec "gtar -cvsf flex_$yearA"."_"."$monthA.tar.gz $FILE";
}