Mat*_*nge 172 directory shell find
find . -type d
Run Code Online (Sandbox Code Playgroud)
可用于查找某些起点下方的所有目录.但它.也会返回当前目录(),这可能是不受欢迎的.如何排除它?
Mat*_*nge 181
不仅find可以通过-maxdepth参数控制递归深度,也可以使用相应的-mindepth参数将深度限制为"顶部" .所以真正需要的是:
find . -mindepth 1 -type d
Run Code Online (Sandbox Code Playgroud)
Cir*_*四事件 171
find . ! -path . -type d
Run Code Online (Sandbox Code Playgroud)
对于这个特殊情况(.),高尔夫球比mindepth解决方案更好(24对26个字符),虽然这可能稍微难以打字因为!.
要排除其他目录,这将打得不那么好,并且需要一个变量用于DRYness:
D="long_name"
find "$D" ! -path "$D" -type d
Run Code Online (Sandbox Code Playgroud)
我!和之间的决策树-mindepth:
!了便携性..?扔一枚硬币.long_name?使用-mindepth.Mil*_*vic 18
find ./* <...>当我不介意忽略第一级dotfiles时我会使用(*在bash中默认情况下glob不匹配 - 请参阅内置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)。[在 Windows 上使用 git bash 进行测试]
| 归档时间: |
|
| 查看次数: |
64345 次 |
| 最近记录: |