列出linux中的所有叶子目录

amo*_*mol 14 bash

有一种简单的方法可以只列出Linux中给定目录下的目录吗?为了更好地解释,我可以这样做:

find mydir -type d
Run Code Online (Sandbox Code Playgroud)

这使:

mydir/src
mydir/src/main
mydir/bin
mydir/bin/classes
Run Code Online (Sandbox Code Playgroud)

我想要的是:

mydir/src/main
mydir/bin/classes
Run Code Online (Sandbox Code Playgroud)

我可以在遍历行并删除,如果下一行包含的路径前行bash脚本做到这一点,但我不知道是否有不使用bash循环更简单的方法.

Bri*_*ian 11

find . -type d | sort | awk '$0 !~ last "/" {print last} {last=$0} END {print last}'
Run Code Online (Sandbox Code Playgroud)


miv*_*ivk 11

如果只想要叶子目录(不包含任何子目录的目录),请查看另一个问题.答案也解释了它,但简而言之就是:

find . -type d -links 2
Run Code Online (Sandbox Code Playgroud)


Pau*_*ce. 5

如果你正在寻找视觉上的东西,那tree -d很好.

drinks
|-- coke
|   |-- cherry
|   `-- diet
|       |-- caffeine-free
|       `-- cherry
|-- juice
|   `-- orange
|       `-- homestyle
|           `-- quart
`-- pepsi
    |-- clear
    `-- diet