Добрый день...
Не знаю насколько этот вопрос сложный или легкий, но решил задать его именно в этом разделе...Мне необходимо скопировать содержимое папки в другую... вместе со всеми сложенными папками...
Казалось быcp -vR /tmp/dir1/* /tmp/dir2/
НО!
Сама папка и сложенные в нее содержат папку .lib , которую копировать абсолютно не надо...
Может как-то можно это сделать параметрами cp?
Если нет, то может скрипт у кого есть?
Я почти написал, но вот помоему скрипты shell с /bin/bash не особо хорошо работют с рекурсией... (ИМХО)
>[оверквотинг удален]
>
>cp -vR /tmp/dir1/* /tmp/dir2/
>
>НО!
>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>абсолютно не надо...
>Может как-то можно это сделать параметрами cp?
>Если нет, то может скрипт у кого есть?
>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>хорошо работют с рекурсией... (ИМХО)find /tmp/dir1/ \! -name .lib -exec cp -vR {} /tmp/dir2/ \;
>[оверквотинг удален]
>>
>>НО!
>>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>>абсолютно не надо...
>>Может как-то можно это сделать параметрами cp?
>>Если нет, то может скрипт у кого есть?
>>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>>хорошо работют с рекурсией... (ИМХО)
>
>find /tmp/dir1/ \! -name .lib -exec cp -vR {} /tmp/dir2/ \;Не работает(((
Вернее работает, но .lib и ныне там
>[оверквотинг удален]
>>>абсолютно не надо...
>>>Может как-то можно это сделать параметрами 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
>>Сама папка и сложенные в нее содержат папку .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 , которую копировать
>>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 и некоторые файлы из вложеных папок
>>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. и ещё куууууча разных очччень полезных вариантов -- пробовать _замучаешься_.
Одна из возможностей,
скопировать содержимое директории /tmp/1 в директорию /tmp/2 за
исключение поддиректории /tmp/1/333 :
(cd /tmp; tar -cvf - 1 --exclude 1/333) | (cd /tmp/2; tar -xvf -)
>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>абсолютно не надо...
>Может как-то можно это сделать параметрами cp?
>Если нет, то может скрипт у кого есть?
>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>хорошо работют с рекурсией... (ИМХО)cd /1 && pax -rw -pe -s ',^.*/\.lib/.*$,,' . /2
>[оверквотинг удален]
>
>cp -vR /tmp/dir1/* /tmp/dir2/
>
>НО!
>Сама папка и сложенные в нее содержат папку .lib , которую копировать
>абсолютно не надо...
>Может как-то можно это сделать параметрами cp?
>Если нет, то может скрипт у кого есть?
>Я почти написал, но вот помоему скрипты shell с /bin/bash не особо
>хорошо работют с рекурсией... (ИМХО)попробуй find /tmp/dir1/ -path .lib -prune -o -exec cp -vR {} /tmp/dir2/ \