我试图在gzip上制作压缩器和解压缩器。在我添加逻辑后的压缩器中,我将文件放入pax,然后将结果压缩并保存为* .abc
pax -w $allfiles > $paxfile
gzip $paxfile > $zippedfile
在解压缩程序中,我必须首先解压缩,因为解压缩对* .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时做错了什么?
答案 0 :(得分:0)
您可以使用以下内容避免创建中间文件并实现您想要的(我猜)。
要压缩:
pax -w $allfiles | gzip - > $zippedfile
,“ - ”代表“从标准输入(即管道)读取。
然后解压缩:
gunzip -c -d $ip | pax -r
“ - c”代表“写入标准输出”,“ - d”代表“解压缩”(可能不需要)。
答案 1 :(得分:0)
嗨,我解决了我的问题。文件名和扩展名存在问题。我没有提取它们并正确地传达给* .gz。我更改并修改了那些,所以现在我解压缩正确的文件,然后管道pax读取。