.gzファイルのディレクトリを繰り返しながらファイルが空の場合は、削除するbashスクリプトを作成しようとしています(たとえば、空中に含まれる非圧縮ファイル)。
いくつかの質問があります。
- 確認できる圧縮(gz)空のファイルの標準ファイルサイズはありますか?
- それとも、bashスクリプトを使用して解凍せずにgzに空のファイルが含まれていることを確認するより良い方法はありますか?
これを達成するには、次のコードを使用しようとしていますが、ファイルサイズが0でなければならないと思います。
for f in dir/*
do
if [[ -s $f ]]
then
do_file_creation
fi
done
ベストアンサー1
残念ながら、gzipには元のファイル名が含まれているため、空のファイルによってサイズが異なります。
gunzip -c $f | head -c1 | wc -c
圧縮されていないサイズがゼロ以外のファイルの場合は1を、圧縮された空のファイルの場合は0を表示します。
for f in dir/*
do
if [[ $(gunzip -c $f | head -c1 | wc -c) == "0" ]]
then
do_file_creation
fi
done
あなたが望むことができますか?