исключения при копировании

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

исключения при копировании

Сообщение nadge »

Можно ли как-то задать, какие файлы и каталоги будут исключены при копировании? Нужно рекурсивно скопировать файловую систему из одного места в другое, исключив при этом несколько каталогов. Вручную это делать не получится, т.к. это должен выполнять скрипт с той или иной периодичностью.

З.Ы. Сорри за глупый вопрос, но никак не могу найти ответ.
Спасибо сказали:
Аватара пользователя
FASTCHIP
Сообщения: 97
ОС: windows xp \ Linux Suse 10.1

Re: исключения при копировании

Сообщение FASTCHIP »

Сразу говорю сори за глупый ответ!!!
Ну в опервых я почти не знаком с скриптами но вроде когда хочеш чтоб чтото копировалось нужно указать имя этого и разве нельзя задать какоето условие для исключения по имени???
а во вторых можно тупо копировать всё а потом сделать удаление лишнего
Почему хакер может спать спокойно???Потому что он хреновый хакер,и не чего не сломал!:(
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: исключения при копировании

Сообщение nadge »

и разве нельзя задать какоето условие для исключения по имени???

Опять же, какое?

Я знаю, как сделать это для, к примеру, tar или rsync, а как для cp - х.з., в мане ничего про это нет, гугль тоже результатов не дал.

а во вторых можно тупо копировать всё а потом сделать удаление лишнего

Вариант, но в моем случае это значительно дольше. Т.е. приемлемо, но крайне неудобно.
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: исключения при копировании

Сообщение Uncle_Theodore »

nadge писал(а):
08.08.2007 19:54
Я знаю, как сделать это для, к примеру, tar или rsync, а как для cp - х.з., в мане ничего про это нет, гугль тоже результатов не дал.

По той простой причине, что у cp возможностеей исключения нету.
Спасибо сказали:
vfed
Сообщения: 145
ОС: Gentoo ~amd64/2007.0/desktop

Re: исключения при копировании

Сообщение vfed »

Uncle_Theodore писал(а):
08.08.2007 19:56
nadge писал(а):
08.08.2007 19:54
Я знаю, как сделать это для, к примеру, tar или rsync, а как для cp - х.з., в мане ничего про это нет, гугль тоже результатов не дал.

По той простой причине, что у cp возможностеей исключения нету.

Отсюда возможное решение: tar создаёт архив нужных файлов с исключениями и передаёт через пайп другому tar'у, который и распаковывает всё куда нужно :rolleyes:
Спасибо сказали:
Аватара пользователя
vicpo
Сообщения: 403
ОС: Mandriva, Gentoo

Re: исключения при копировании

Сообщение vicpo »

Код: Выделить всё

 find -name "*.doc" -exec cp {} /tmp \;
вот пример копирования по маске всех файлов с расширением doc в каталог /tmp :) find мощная штука подробнее в мане или в гугле, где удобнее короче :)
JID: vicpo@xmpp.kz
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: исключения при копировании

Сообщение nadge »

vicpo, а как НЕ копировать все файлы .doc, скопировав все остальные? Вопрос в этом.
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: исключения при копировании

Сообщение arkhnchul »

нечто вроде

Код: Выделить всё

find -name "*" -exec cpscript.sh {} \;

где cpscript.sh - оный самописный скрипт, проверяющий файл на соответствие заданному условию и копирующий, если оное соответствие имеет место быть...
Losing is fun!
Спасибо сказали:
Аватара пользователя
anonymous.ru
Сообщения: 614

Re: исключения при копировании

Сообщение anonymous.ru »

nadge писал(а):
08.08.2007 20:51
а как НЕ копировать все файлы .doc, скопировав все остальные? Вопрос в этом.


find . ! -name "*.doc" -exec cp {} /tmp \;
:drinks:
Спасибо сказали:
Аватара пользователя
stdds
Сообщения: 886
ОС: Mandriva 2008 / 2007 Free

Re: исключения при копировании

Сообщение stdds »

А вот не проще ли чем выяснять как исключать файлы при копировании, просто сделать скрит в котором будут перечислены шаблоны файлов и каталогов которые будут копироваться?
"Нету смысла искать смысл там где нет ни какого смысла это бесмыслица ее все равно не осмыслить!" Burhan Haldun (Бесмысленые высказывания)
Спасибо сказали:
Аватара пользователя
nadge
Сообщения: 1519
ОС: ArchLinux, Ubuntu 10.10

Re: исключения при копировании

Сообщение nadge »

Спасибо всем за ответы.

Задоблался я писать этот скрипт, не дается он мне. В итоге решил копировать те файлы, что нужны, вместо некопирования тех, что не нужны. Что в моем случае не очень удобно.


З.Ы. Копирую ФС установленного линукса в отдельное место для дальнейших преобразований и сборки LiveCD.
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: исключения при копировании

Сообщение broom »

если вам нужна корневая фс без подмонтированных разделов и без каталогов dev, proc, sys, то у find есть опция -xdev.
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали:
ozz
Сообщения: 1

Re: исключения при копировании

Сообщение ozz »

Код: Выделить всё

cp -a -p -v -r `ls --ignore= *.txt` /temp

Пример рекурсивного копирования содержания текущей директории без файлов с расширением txt в директорию temp.
Обращаю внимание, что команда ls с ключем заключается в обратные апострофы
Спасибо сказали:
KostikN
Сообщения: 53
ОС: openSUSE 11.4 (x86_64)

Re: исключения при копировании

Сообщение KostikN »

А почему бы rsync для этих целей не использовать. Там достаточно возможностей для включения/исключения нужных/ненужных файлов.
Вот некоторые приемы использования.
Нужные вам опции:
--exclude=PATTERN -исключить файлы, соответствующие шаблону;
--exclude-from=file -исключить файлы, перечисленные в file.
Обычно делается так

Код: Выделить всё

rsync -av --exclude-from=ex.txt /home/kostik/dir1 /home/kostik/dir2

dir1 - источник, dir2 - приемник.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: исключения при копировании

Сообщение Portnov »

Вариант:

Код: Выделить всё

tar --exclude='*.doc' cf - | (cd /destination; tar xf -)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали: