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

Исходное сообщение
"Копирование содержимого папки с иключением некоторых"

Отправлено xfree86 , 06-Фев-08 15:24 
Добрый день...
Не знаю насколько этот вопрос сложный или легкий, но решил задать его именно в этом разделе...

Мне необходимо скопировать содержимое папки в другую... вместе со всеми сложенными папками...
Казалось бы

cp -vR /tmp/dir1/* /tmp/dir2/

НО!
Сама папка и сложенные в нее содержат папку .lib , которую копировать абсолютно не надо...
Может как-то можно это сделать параметрами cp?
Если нет, то может скрипт у кого есть?
Я почти написал, но вот помоему скрипты shell с /bin/bash не особо хорошо работют с рекурсией... (ИМХО)


Содержание

Сообщения в этом обсуждении
"Копирование содержимого папки с иключением некоторых"
Отправлено idle , 06-Фев-08 16:06 
>[оверквотинг удален]
>
>cp -vR /tmp/dir1/* /tmp/dir2/
>
>НО!
>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>абсолютно не надо...
>Может как-то можно это сделать параметрами cp?
>Если нет, то может скрипт у кого есть?
>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>хорошо работют с рекурсией... (ИМХО)

find /tmp/dir1/ \! -name .lib -exec cp -vR {} /tmp/dir2/ \;


"Копирование содержимого папки с иключением некоторых"
Отправлено xfree86 , 06-Фев-08 16:40 
>[оверквотинг удален]
>>
>>НО!
>>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>>абсолютно не надо...
>>Может как-то можно это сделать параметрами cp?
>>Если нет, то может скрипт у кого есть?
>>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>>хорошо работют с рекурсией... (ИМХО)
>
>find /tmp/dir1/ \! -name .lib -exec cp -vR {} /tmp/dir2/ \;

Не работает(((
Вернее работает, но .lib и ныне там


"Копирование содержимого папки с иключением некоторых"
Отправлено idle , 06-Фев-08 17:01 
>[оверквотинг удален]
>>>абсолютно не надо...
>>>Может как-то можно это сделать параметрами cp?
>>>Если нет, то может скрипт у кого есть?
>>>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>>>хорошо работют с рекурсией... (ИМХО)
>>
>>find /tmp/dir1/ \! -name .lib -exec cp -vR {} /tmp/dir2/ \;
>
>Не работает(((
>Вернее работает, но .lib и ныне там

find /tmp/dir1/* \! -name .lib -exec cp -vR {} /tmp/dir2/ \;

man find


"Копирование содержимого"
Отправлено Andrey Mitrofanov , 06-Фев-08 16:52 
>>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>find /tmp/dir1/ \! -name .lib -exec cp -vR {} /tmp/dir2/ \;

надо не "! -name .lib", а `! -path "*/.lib/*"` или... А, нет, вот:
find /tmp/dir1/ -name .lib -prune -o -exec cp -vR {} /tmp/dir2/ \;


"Копирование содержимого"
Отправлено xfree86 , 06-Фев-08 17:04 
>>>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>>find /tmp/dir1/ \! -name .lib -exec cp -vR {} /tmp/dir2/ \;
>
>надо не "! -name .lib", а `! -path "*/.lib/*"` или... А, нет,
>вот:
>find /tmp/dir1/ -name .lib -prune -o -exec cp -vR {} /tmp/dir2/ \;
>

Ни один , ни другой вариант опять же не работают
.lib как были так и есть, и к тому же добавляются в /tmp/dir2 еще папки типа dir1 и некоторые файлы из вложеных папок


"пирование содержи"
Отправлено Andrey Mitrofanov , 07-Фев-08 09:35 
>>find /tmp/dir1/ -name .lib -prune -o -exec cp -vR {} /tmp/dir2/ \;
>Ни один , ни другой вариант опять же не работают

0. Вот что значит такой ерундой заниматься "по форумам"... :))
1. "-R" лишний...
2. cd /tmp/dir1; find  -name .lib -prune -o -print|cpio -padmu /tmp/dir2
3. и ещё куууууча разных очччень полезных вариантов -- пробовать _замучаешься_.


"Копирование содержимого папки с иключением некоторых"
Отправлено Slava , 06-Фев-08 18:31 
Одна из возможностей,
скопировать содержимое директории /tmp/1 в директорию /tmp/2 за
исключение поддиректории  /tmp/1/333 :
(cd /tmp; tar -cvf - 1 --exclude 1/333) | (cd /tmp/2; tar -xvf -)

"Копирование содержимого папки с иключением некоторых"
Отправлено anonymous , 06-Фев-08 19:54 
>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>абсолютно не надо...
>Может как-то можно это сделать параметрами cp?
>Если нет, то может скрипт у кого есть?
>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>хорошо работют с рекурсией... (ИМХО)

cd /1 && pax -rw -pe -s ',^.*/\.lib/.*$,,' . /2


"Копирование содержимого папки с иключением некоторых"
Отправлено zeuwse , 06-Ноя-08 08:19 
>[оверквотинг удален]
>
>cp -vR /tmp/dir1/* /tmp/dir2/
>
>НО!
>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>абсолютно не надо...
>Может как-то можно это сделать параметрами cp?
>Если нет, то может скрипт у кого есть?
>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>хорошо работют с рекурсией... (ИМХО)

попробуй find /tmp/dir1/ -path .lib -prune -o -exec cp -vR {} /tmp/dir2/ \