Как я могу отфильтровать точечные файлы, используя find в bash? - PullRequest
1 голос
/ 07 февраля 2011

Я искал повсюду, но, похоже, не могу найти ответ на этот, казалось бы, простой вопрос!

У меня есть каталог, содержащий некоторые точечные файлы (они могут быть .git, но могутлегко быть .svn и, возможно, даже чем-то другим) и некоторыми не точечными файлами.Я ищу общую функцию, которая перечислит все подкаталоги этого каталога, , за исключением , начиная с периода ..

Я думаю, что это какой-то вариант find . -type d но я попробовал несколько заклинаний и потерпел поражение?)

Ответы [ 3 ]

4 голосов
/ 07 февраля 2011
find . -type d | grep -v '/\.'

... или ...

find . -type d -a ! -name '.?*' -o -name '.?*' -a ! -prune
2 голосов
/ 07 февраля 2011

Попробуйте:

find . -mindepth 1 -name '.*' -prune -o \( -type d -print \)
0 голосов
/ 07 февраля 2011

Я не уверен, что это то, что вам нужно, но для рекурсивного перечисления всех подкаталогов в bash я обычно делаю что-то вроде

ls -R | grep /

Работает намного быстрее, чем некоторые варианты поиска, которые я пробовал.Недостатком является то, что с помощью ls в конце я получаю лишнее двоеточие, но это не для меня.

// edit Хорошо, я попробовал найти другие ответы здесь, и они работают довольно быстро ... ноих труднее запомнить, чем ls.:)

...