PDA

Показать полную графическую версию : проблема с 'find' (скрипт на shell)


romez777
20-02-2007, 09:40
Приветствую.

Задача в том, чтобы выбрать из дерева линукс ядра все файлы с расширением *.[chsS] (т.е. исходники), кроме определенных каталогов (Documentation, scripts..), при этом есть ряд исключений которые нужно соблюсти: не добавляя каталог drivers/, добавить _только_ определенные файлы из drivers/net/

Получился следующий скрипт:


#!/bin/sh -x

LNX=/usr/src/linux-2.4.18-14
cd /
find $LNX \
-path "$LNX/arch/*" ! -path "$LNX/arch/i386*" -prune -o \
-path "$LNX/include/asm-*" ! -path "$LNX/include/asm-i386*" -prune -o \
-path "$LNX/tmp*" -prune -o \
-path "$LNX/Documentation*" -prune -o \
-path "$LNX/scripts*" -prune -o \
-path "$LNX/drivers*" -prune -o \
-name "*.[chxsS]" -print > $HOME/cscope.files


Не могу сообразить как добавить определенные файлы из drivers/net/..., не выполняя лишний 'find' ?

Перерыл весь 'man find', но решения не нашел.

Подскажите, в чем проблема. Благодарю.

gf100
20-02-2007, 13:12
Как вариант, обработай результат с помощью grep -v. Можно несколько раз - вешаешь конвейеры сколько нужно.




© OSzone.net 2001-2012