誤って2回圧縮されたファイルがあります。ファイル拡張子なし
たとえば、gzip -dc file
いくつかのファイルはいくつかのバイナリ横説説を出力しますが、他のファイルは問題ありません。
フォルダ内の二重gzip圧縮ファイルを見つけて(すべてのファイルが二重gzipで圧縮されているわけではありませんが、すべてのファイルが少なくとも一度はあります)、自動的に単一のgzip圧縮状態に復元できるコマンドを実行したいと思います。
ベストアンサー1
次のことができます。
for file in *; do
zcat -- "$file" |
file - |
grep -wq compressed &&
gunzip -- "$file"
done
これには任意のファイル名で実行できるという利点があります。あなたの方法としてls
、参照http://mywiki.wooledge.org/ParsingLs)もはるかにシンプルに見えます。少なくとも私にとってはそうだ。
.gz
欠点は、拡張子のないgzipファイルで終わることができることです。しかし、これは簡単に解決されます:
for file in *; do
case "$file" in
*.gz) ;;
*) file -- "$file" |
grep -wq compressed &&
mv -v -- "$file" "$file".gz;;
esac
done