列出ls命令的子目录

27

如何使用 ls 命令列出子目录?使用 '-d' 参数只能显示当前目录。我想要像 find . -type d -maxdepth 1 这样的结果。


2
也许你想要写成:find . -type d -maxdepth 1-maxdepth 后面不需要加 =)。 - Chen Levy
3个回答

36
这应该会有所帮助:

ls -d */

*/ 只匹配当前目录下的目录。输出的目录名可能包含尾部的 '/' 符号。


4
要严谨一点,你应该执行 ls -d .*/ */shopt -s dotglob; ls -d .*/,否则以点 (.) 开头的目录将不会被列出。 - Chen Levy
仍然对 */ 的含义感到困惑? - ZhaoGang
@ZhaoGang 请查看 https://dev59.com/52Yq5IYBdhLWcg3wmRua - Costi Ciudatu

7
您可以与grep结合使用:
ls -l | grep '^d'

仅获取文件名:

ls -l | grep '^d' | awk '{ print $9 }'

您可以将此转换为一个方便的别名
alias ldir="ls -l | grep '^d'"

2
如果您已经在使用awk,那么grep就是多余的:ls -l | awk '/^d/ { print $9 }' - Chen Levy

6

ls -d */ls -d */*/ 看起来可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接