Спасибо за вдохновение, Грэмми, вот минимальный пример, если кто-то ищет то же самое.
Создайте некоторые данные в папке:
cd /tmp;
mkdir dir1;
echo "foo" >> ./dir1/test_txt;
echo "bar" >> ./dir1/test_txt;
Упаковка в смолу:
tar -cf test_tar.tar dir1;
Удалите каталог, который мы собираемся распаковать и отредактировать.
rm -rf dir1;
И распакуйте только соответствующий файл из папки tar и отредактируйте:
ВНИМАНИЕ:
Tar обновляется, только если отметка времени изменилась с момента последнего редактирования!
Вот почему здесь есть команда режима сна (для изменения метки времени.).
sleep 1
tar -xf test_tar.tar dir1/test_txt
sed -i 's/foo/baar/' dir1/test_txt ;
Обновите соответствующий файл.
tar -uf test_tar.tar dir1/test_txt
Проверьте, сработало ли это:
tar -xf test_tar.tar dir1
cat ./dir1/test_txt
[...]$
baar
bar