AIXで圧縮コマンド・エラー・メッセージを処理する

AIXで圧縮コマンド・エラー・メッセージを処理する

本番の問題を解決していますが、zipコマンドのエラーメッセージを再現できませんでした。

現在のソリューション

次のようにメッセージを処理するシェルラッパーに case-esac ブロックがあります。

case "$MSG" in
    "This file is not changed; compression does not save space.")
            echo "$MSG"
            ;;
    *unchanged*)
            echo "$MSG"
            ;;
    *)
            echo ERROR
            ;;
esac

問題のシナリオ

ラッパー(一部のファイルの場合)を介して圧縮コマンドを呼び出すと、エラーメッセージが生成されます(例:タイプ1);

 -- file unchanged

ただし、(同じファイルセットに対して)コマンドラインから同じコマンドを実行すると、他のエラーメッセージが生成されます(例:タイプ2);

This file is not changed; compression does not save space.

誰でもこの動作を理解するのに役立ちますか?可能であればコピーすることをお勧めします。タイプ1エラーメッセージ

ベストアンサー1

プログラムが圧縮しているファイルシステムのブロックサイズを表示して圧縮ファイルの数を認識すると、「保存されていないスペースがない」というメッセージが表示されることがあります。彫刻生成されたファイルでも同様です。 zipプログラムでも同様の動作を見ることができます。ファイル圧縮を拒否することで、開発者はパフォーマンスが向上すると信じています。

より一般的には、圧縮ユーティリティは結果ファイルが小さいかどうかをチェックします(圧縮アルゴリズムがオーバーヘッドになるテーブルを追加するため)。

例えば、IBM のマニュアル・ページには、圧縮に -f/-F オプションがあることが示されています (参照:協会圧縮。

最後に、「圧縮」は、ユーティリティがファイルをチェックし、サフィックスまたはファイルが圧縮されたことを示すコードで始まるという事実を発見したときに発生します。

おすすめ記事