<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; BASH: Предложите метод сжатия файла при отсутствии свободного места ФС]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=7233&amp;type=atom" />
	<updated>2012-06-25T09:20:56Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=7233</id>
		<entry>
			<title type="html"><![CDATA[Re: BASH: Предложите метод сжатия файла при отсутствии свободного места ФС]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61191#p61191" />
			<content type="html"><![CDATA[<p>Тема актуальна, актуальна и обратная задача - есть архив и немного свободного пространства, известно, что остатка свободного пространства + место занимаемое архивом достаточно для распакованного содержимого архива - как распаковать не прибегая ко внешним хранилищам ?<br />запаковка вариант (предложите без временных)<br /></p><div class="codebox"><pre><code>#!/bin/sh

file=$1
[ ! -f ${file} ] &amp;&amp; exit
prefix=${file}.$$
x=0
size=`wc -c ${file} | cut -d&#039; &#039; -f1`
split=$((1024 * 1024 * 32))
x=$((${size} / ${split} + 1))
m=${x}
while [ ${size} -ge ${split} ]; do
    tail -c ${split} ${file} &gt; ${prefix}.`printf &#039;%010d&#039; ${x}`
    size=$((${size} - ${split}))
    truncate -s -${split} ${file}
    echo $(( ${m} - ${x} )) 1&gt;&amp;2
    x=$((x-1))
done
mv ${file} ${prefix}.`printf &#039;%010d&#039; ${x}`
echo &quot;START GZIP ${file}...&quot;
for x in ${prefix}.*; do
    cat ${x}
    rm ${x} &gt; /dev/null || {
        echo ${x} 1&gt;&amp;2
        break
    }
    m=$((${m} - 1))
    echo ${m} 1&gt;&amp;2
done | gzip -c &gt; ${file}.gz</code></pre></div>]]></content>
			<author>
				<name><![CDATA[smaharbA]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=2911</uri>
			</author>
			<updated>2012-06-25T09:20:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61191#p61191</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[BASH: Предложите метод сжатия файла при отсутствии свободного места ФС]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=60474#p60474" />
			<content type="html"><![CDATA[<p>Есть файл - пусть 20 Гб, на ФС 1 - 2 Гб свободного места. Предложите варианты сжатия исходного файла без привлечения внешних/сетевых носителей.<br />Файл должен быть сжат как единое целое, т.е. с возможностью его использования в приложениях.</p>]]></content>
			<author>
				<name><![CDATA[smaharbA]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=2911</uri>
			</author>
			<updated>2012-05-25T07:13:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=60474#p60474</id>
		</entry>
</feed>
