ситуация: есть некоторые рабочие данные - каталог с кучей файлов/подкаталогов, гигов на 50. есть архив этих же данных месячной давности. разница между ними - в текущем рабочем каталоге нету некоторых файлов (в разных подкаталогах, немного, но общее количество сложно определить); в архиве эти файлы есть.
как рекурсивно скопировать содержимое архива поверх текущих данных _без замены_? т.е. чтоб скопировались только отсутствующие файлы?если тупо копировать архивную папку поверх текущей в konqueror'е - там либо замена всех данных (а это нельзя - рабочие данные с момента архивации уже изменились), либо пропуск - но тогда он внутрь папки даже не заглядывает, не сравнивает содержимое.
cp -R -u - тоже неканает, ибо после разархивирования "архивная" копия данных получается новее рабочей (даты создания/модификации заменяются на текущую дату/время).прошу помощи :) задачка может и простая, но из-за частоупотребляемости ключевых слов - искать в инете решение практически нереально
Можно конечно поискать нужную опцию у архиватора, но ее может и не быть. Я бы сделал так:1. получаем список файлов в архиве(для gnu tar это -t, для остальных смотрите man), пропускаем через sort и сохраняем в файл
2. получаем список файлов в нужной директории через find/locate, также сортируем и записываем в другой файл
3. сравниваем два файла при помощи comm и получаем список файлов, подлежащих экстракции, записываем его в файл и скармливаем архиватору(для gnu tar это -T)
>[оверквотинг удален]
>
>если тупо копировать архивную папку поверх текущей в konqueror'е - там либо
>замена всех данных (а это нельзя - рабочие данные с момента
>архивации уже изменились), либо пропуск - но тогда он внутрь папки
>даже не заглядывает, не сравнивает содержимое.
>cp -R -u - тоже неканает, ибо после разархивирования "архивная" копия данных
>получается новее рабочей (даты создания/модификации заменяются на текущую дату/время).
>
>прошу помощи :) задачка может и простая, но из-за частоупотребляемости ключевых слов
>- искать в инете решение практически нереальнотупо rsync заюзать
Единственное в чем вы правы - заюзать rsync будет тупо. Зачем правда советовать тупые методы непонятно.
А tar-овская опция "k" не спасет отца русской демократии?типа
tar xkvf pppoe.tar
распакует все файлы, кроме имеющихся.
на имеющиеся обругается File existВроде и временные атрибуты будут оригинальные.
всем спасибо за ответы, по началу склонялся к варианту angra, но потом нашел как распаковать бэкап с сохранением mtime (акронисовский архив) - проблема отпала сама сабой - cp -R -u справился.