On Thu, Dec 23, 2004 at 10:59:52AM +0300, Dmitry E. Oboukhov wrote:
> и вот вопрос: есть какие-нидь методы вычислить какие новые файлы создал
> инсталлер кроме дифа на ls -lR ?
Вообще есть простой подход на эту тему:

Как мы можем обратить внимание, при создании (изменении числа hardlinks/
owner/group/permissions) значение ctime для файла устанавливается в
текущее время (модификация mtime насильно со стороны юзера тоже вызывает
такой эффект). Посему у вновь созданных файлов ctime будет свежим.
Вполне можно сказать touch flagfile, после чего запустить сначала
инсталлятор, а затем 

find <набор каталогов где искать> -cnewer flagfile > filelist

Недостатки у такого простого подхода есть, но это значительно быстрее,
чем ls -lR два раза.

Дальше можно скопировать данные файлы простым вызовом двух tar через
трубку вот так:

tar -c --no-recursion -T filelist -O| tar -xpf -

Смысл --no-recursion и один из недостатков следующий:
Когда мы создаем в каталоге dir подкаталог dir/newdir в newdir создается 
элемент .., который является жесткой ссылкой на dir, и dir при таком подходе 
попадает в filelist.

Информация к размышлению находится в man 2 stat.

WBR
Dmitri Ivanov

Ответить