簡體   English   中英

使用Shell腳本解壓縮器

[英]Decompressor using Shell Scripting

我正在嘗試在gzip之上制作壓縮器和解壓縮器。 添加我的邏輯后,在壓縮器中我將文件打包,然后壓縮結果並將其另存為* .abc

pax -w $allfiles > $paxfile  

gzip $paxfile > $zippedfile

在解壓縮器中,我必須先將其解壓縮,因為在* .abc上解壓縮不起作用,我將文件重命名為file.gz,然后將結果存儲在file.pax中。 然后我嘗試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期間我做錯什么了嗎?

您可以避免創建中間文件,並通過以下方式實現您想要的(我想)。

壓縮:

pax -w $allfiles | gzip - > $zippedfile

從標准輸入(即管道)讀取的“-”代表“。”

然后解壓縮:

gunzip -c -d $ip | pax -r

“ -c”代表“寫入標准輸出”,“-d”代表“解壓縮”(可能不需要)。

嗨,我解決了我的問題。 文件名和擴展名存在問題。 我沒有提取它們並正確地傳送到* .gz。 我更改並修改了這些文件,所以現在我解壓縮正確的文件,然后將其讀入pax。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM