0

gzip の上にコンプレッサーとデコンプレッサーを作成しようとしています。ロジックを追加した後、コンプレッサーでファイルをパックし、結果を圧縮して *.abc として保存します

pax -w $allfiles > $paxfile  

gzip $paxfile > $zippedfile

unzip は *.abc では機能しないため、解凍プログラムでは、ファイルの名前を file.gz に変更し、結果を file.pax に保存することから始めなければなりません。私はそれを読んでパックしようとします..ここで立ち往生しています

i=$(echo $filename | cut -d'.' -f1)
echo $i
ip=$i.gz
mv "$filename" "$ip"
op=$i.pax

gunzip -f < $ip > $op | pax -r 

助けてください。私は何が間違っているのか分かりません。私が得るエラーは

pax: End of archive volume 1 reached
ATTENTION! pax archive volume change required.
Ready for archive volume: 1
Input archive name or "." to quit pax.
Archive name > 

pax -r 中に何か間違ったことをしていますか?

4

2 に答える 2

0

次の方法で、中間ファイルの作成を回避し、必要なものを実現できます (推測します)。

圧縮するには:

pax -w $allfiles | gzip - > $zippedfile

「-」は「標準入力 (つまり、パイプ) から読み取る」を表します。

次に解凍します。

gunzip -c -d $ip | pax -r

「-c」は「標準出力への書き込み」を表し、「-d」は「解凍」を表します(おそらく必要ありません)。

于 2013-11-02T22:17:06.030 に答える
0

こんにちは私は私の問題を解決しました。ファイル名と拡張子に問題がありました。それらを適切に抽出して *.gz に伝達していませんでした。それらを変更および修正したので、正しいファイルを解凍し、それを pax read にパイプします。

于 2013-11-03T16:53:02.127 に答える