如何在linux上列出非空子目录?

Jae*_*ebi 27 unix directory bash

我有一个包含多个子目录的目录.我只想列出包含至少一个文件的子目录.我怎样才能做到这一点?

Dav*_*d Z 54

 find . -mindepth 1 -maxdepth 1 -not -empty -type d
Run Code Online (Sandbox Code Playgroud)

会给你所有非空的目录.如果要排除仅包含其他目录(但没有文件)的目录,其他一个答案可能会更好......

  • 因为!看起来它应该是一个外壳元字符,并且我永远不记得是否必须引用它;-),但是您认为它更具可移植性是正确的。(我猜想因为接受了这个答案,所以特定于GNU的语法适用于OP) (3认同)

Pau*_*lin 7

find . -type f -print0 | xargs -0 -n 1 dirname | sort -u
Run Code Online (Sandbox Code Playgroud)


Jon*_*ler 5

怎么样:

find /nominated/directory -type f |
sed 's%/[^/]*$%% |
sort -u
Run Code Online (Sandbox Code Playgroud)

查找文件 - 删除文件名部分 - 唯一排序。

它不会列出仅包含其他子子目录的子目录。