2013-02-11 2 views
2

lib1.a
lib2.a
lib1.so
lib2.so
libgcc1.so
libgcc2.so
libgcc3.so
lib3 .so
копия все * .so файлы за исключением libgcc * .so

Как я могу скопировать все файлы *.so исключающих libgcc*.so т.е. скопировать следующие файлы:

lib1.so
lib2.so
lib3.so

?

+0

Копировать в папку темп, удалить те, которые вам не нужны, скопируйте остальные в финал место назначения? – millimoose

+0

Также: http://stackoverflow.com/questions/216995/how-can-i-use-inverse-or-negative-wildcards-when-pattern-matching-in-a-unix-linu может иметь некоторые указатели. – millimoose

+0

Насколько строго требование не копировать 'libgcc'? Не могли бы вы скопировать все, а потом удалить только те? В любом случае, вы, вероятно, захотите начать с 'find' или' ls | grep', оба передаются в 'xargs cp'. Чтобы исключить все, используйте 'grep -v'. – ssube

ответ

2

Попробуйте использовать find:

find path/to/src-dir -name '*.so' ! -name 'libgcc*.so' \ 
    -exec cp '{}' /path/to/dst-dir \; 
5

bash В, вы можете использовать расширенный подстановку:

shopt -s extglob 
cp !(libgcc*).so destination/