URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7865
[ Назад ]

Исходное сообщение
"Скрипт для копирования после сравнения каталогов..."

Отправлено Глеб , 29-Янв-09 12:56 
Всем привет. Что-то не соображу как решить такую задачу:
Есть 2 каталога A и B. В них глубокое дерево подкаталогов с большим количеством файлов. Объем примерно 130 Гб, порядка 50 000 файлов. Нужно создать каталог С с аналогичной структурой подкаталогов и переместить в него из каталога B файлы которых нет в каталоге А.

Содержание

Сообщения в этом обсуждении
"Скрипт для копирования после сравнения каталогов..."
Отправлено phpcoder , 29-Янв-09 12:58 
>Нужно создать каталог С с аналогичной структурой подкаталогов и переместить в
>него из каталога B файлы которых нет в каталоге А.

find + while + test + install


"Скрипт для копирования после сравнения каталогов..."
Отправлено Andrey Mitrofanov , 29-Янв-09 13:13 
>> файлы которых нет в каталоге А.

Если такая постановка задачи _подразумевает_ сравнение по пути, то оно да.

>find + while + test + install

(find+sort)*2 + comm + cpio Ж))))


"Скрипт для копирования после сравнения каталогов..."
Отправлено Глеб , 29-Янв-09 13:42 
>>find + while + test + install
>
>(find+sort)*2 + comm + cpio Ж))))

Спасибо за пинки в нужную сторону. Второй вариант похоже побыстрее будет. Остановлюсь на нем.


"Скрипт для копирования после сравнения каталогов..."
Отправлено ACCA , 10-Фев-09 10:40 
>>> файлы которых нет в каталоге А.
>
>Если такая постановка задачи _подразумевает_ сравнение по пути, то оно да.
>
>>find + while + test + install
>
>(find+sort)*2 + comm + cpio Ж))))

Живут же люди... cpio на их файлах ещё работает.

Если есть файлы больше 8GB, придётся пользовать pax.


"Скрипт для копирования после сравнения каталогов..."
Отправлено mike marjasov , 29-Янв-09 13:26 
>Всем привет. Что-то не соображу как решить такую задачу:
>Есть 2 каталога A и B. В них глубокое дерево подкаталогов с
>большим количеством файлов. Объем примерно 130 Гб, порядка 50 000 файлов.
>Нужно создать каталог С с аналогичной структурой подкаталогов и переместить в
>него из каталога B файлы которых нет в каталоге А.

cp -R --update откуда куда