如何递归滤波点文件出在bash使用find?
问题描述:
我已经搜查甚广,但似乎无法找到答案,这个看似简单的问题!如何递归滤波点文件出在bash使用find?
我有一个包含一些点文件的目录(他们碰巧.git
,但很容易被.svn
,甚至别的东西)和一些非点文件。我在寻找一个一般功能,将列出该目录,的所有子目录,除了有一段.
开始的。
我想它是find . -type d
一些变异,但我试过几个咒语,并拿出短。
喜欢的东西
def find_files(listing, dir):
for entry in listdir(dir):
if isdir(entry) and does_not_begin_with_dot(entry):
listing.append(entry)
find_files(listing, entry)
(惊讶没人问过这个 - 也许有,我不是看到更多的bash十岁上下的方式?)
答
find . -type d | grep -v '/\.'
...或...
find . -type d -a ! -name '.?*' -o -name '.?*' -a ! -prune
答
这给一试:
find . -mindepth 1 -name '.*' -prune -o \(-type d -print \)
答
我不知道这是否是你想要的,但递归列出所有子目录在bash我平时做这样的事情
ls -R | grep/
作品很多要快一些找到我尝试的选择。缺点是使用ls我最后得到了额外的冒号,但对我来说不是这样。
//编辑好吧,我试图从这里找到其他答案,他们的工作相当快......但他们是难度比LS记住。 :)
惯于`找到型d -a! -name'。?*'-o! -prune`也可以吗? – 2013-12-25 03:36:51