1

Столкнувшись с той же проблемой, что и Почему не «найти» подрезать так, как я думаю, это должно?,

но этот принятый ответ не работает для меня:

Вот мои файлы:

$ find . 
.
./resources
./resources/sitewide
./resources/sitewide/test.c
./resources/sitewide/.svn
./resources/sitewide/.svn/test.c
./resources/test.c
./resources/.svn
./resources/.svn/test.c
./test.c
./users
./users/avatars
./users/avatars/test.c
./users/avatars/.svn
./users/avatars/.svn/test.c
./users/test.c
./users/.svn
./users/.svn/test.c
./temporary
./temporary/test.c
./temporary/.svn
./temporary/.svn/test.c
./.svn
./.svn/test.c

Вот каков результат при использовании принятого ответа:

$ find -type d -path '.svn' -prune -o -print
.
./resources
./resources/sitewide
./resources/sitewide/test.c
./resources/sitewide/.svn
./resources/sitewide/.svn/test.c
./resources/test.c
./resources/.svn
./resources/.svn/test.c
./test.c
./users
./users/avatars
./users/avatars/test.c
./users/avatars/.svn
./users/avatars/.svn/test.c
./users/test.c
./users/.svn
./users/.svn/test.c
./temporary
./temporary/test.c
./temporary/.svn
./temporary/.svn/test.c
./.svn
./.svn/test.c

Есть две проблемы с принятым ответом, во-первых, .svn все еще перечислены, и во-вторых, не только каталоги, но и файлы также перечислены.

Эти проблемы я действительно могу исправить. но мой вопрос

как найти эти .c файлы не в .svn каталогах?

Я пробовал все следующее, но у меня ничего не получалось:

 find .  -path '*/.svn' -prune -name "*.c" -print
 find .  -path '*/.svn' -prune -o -name "*.c" -print
 find .  -path '*/.svn' -prune -name "*.c" -o -print
 find .  -path '*/.svn' -prune -a -name "*.c" -print

Пожалуйста помоги.

1 ответ1

1

Ваша команда

find .  -path '*/.svn' -prune -o -name "*.c" -print

должно действительно работать, хотя вы могли бы переписать его

find .  -name .svn -prune -o -name "*.c" -print

в противном случае ваша находка сломана. Я попробовал на 2 версии find --version:

find (GNU findutils) 4.5.12
find (GNU findutils) 4.4.2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .