find . -type d
可用于下面的一些起点的所有目录。 但它返回当前目录( .
),也可能是不希望的。 怎样才可以排除?
find . -type d
可用于下面的一些起点的所有目录。 但它返回当前目录( .
),也可能是不希望的。 怎样才可以排除?
POSIX 7的解决方案 :
find . ! -path . -type d
对于这种特殊的情况下( .
),打高尔夫球好过mindepth
溶液(24比26个字符),虽然这可能是稍硬因为打字!
。
要排除其他目录,这将高尔夫球较差,并且需要干燥的变量:
D="long_name"
find "$D" ! -path "$D" -type d
我之间的决策树!
和-mindepth
:
!
对于便携性。 .
? 扔硬币。 long_name
? 使用-mindepth
。 不仅的递归深度find
可以通过控制-maxdepth
参数,该深度也可以从“顶部”使用相应的限制-mindepth
参数。 那么,什么人真正需要的是:
find . -mindepth 1 -type d
我用find ./* <...>
时,我不介意忽略一级点文件(在*
水珠默认情况下不会在bash符合这些-看到shopt内建的“dotglob”选项: HTTPS:/ /www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html )。
eclipse tmp # find . . ./screen ./screen/.testfile2 ./.X11-unix ./.ICE-unix ./tmux-0 ./tmux-0/default
eclipse tmp # find ./* ./screen ./screen/.testfile2 ./tmux-0 ./tmux-0/default
那么,一个简单的解决方法,以及(溶液不是为我工作在Windows上的Git的bash)
find * -type d
它可能不是很高性能的,但能够完成任务,这就是我们有时需要。
[编辑]:作为@AlexanderMills评论它不会显示在根位置(例如隐藏目录./.hidden
),但它会显示隐藏子目录(例如./folder/.hiddenSub
)。 [测试用git bash的上窗口]