The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"проблема с 'find' (скрипт на shell)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"проблема с 'find' (скрипт на shell)"  
Сообщение от Roman (??) on 20-Фев-07, 09:42 
Приветствую.

Задача в том, чтобы выбрать из дерева линукс ядра все файлы с расширением *.[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', но решения не нашел.

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "проблема с 'find' (скрипт на shell)"  
Сообщение от Roman (??) on 21-Фев-07, 05:44 
up
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "проблема с 'find' (скрипт на shell)"  
Сообщение от allez (ok) on 21-Фев-07, 09:50 
>Приветствую.
>
>Задача в том, чтобы выбрать из дерева линукс ядра все файлы с
>расширением *.[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', но решения не нашел.
>
>Подскажите, в чем проблема. Благодарю.

Может, стоит добавить еще одну конструкцию "-o -name"?
Например, такого вида:

-name "*.[chxsS]" -o -name <filename(s)> -print > $HOME/cscope.files
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру