【问题标题】:List sub-directories with ls [closed]使用 ls 列出子目录 [关闭]
【发布时间】:2011-07-07 06:52:50
【问题描述】:

如何使用 ls 列出子目录,使用 '-d' 只显示当前目录。我想要像find . -type d -maxdepth 1 这样的东西会给我。

【问题讨论】:

  • 也许你想写:find . -type d -maxdepth 1-maxdepth 没有=

标签: linux shell


【解决方案1】:

这应该会有所帮助:

ls -d */

*/ 只会匹配当前目录下的目录。不过,输出目录名称可能会包含结尾的“/”。

【讨论】:

  • 要学究起来,你应该这样做ls -d .*/ */shopt -s dotglob; ls -d .*/,否则不会列出以点(.)开头的目录。
  • 仍然对*/的含义感到困惑
【解决方案2】:

ls -d */ls -d */*/ 似乎工作得很好。

【讨论】:

    【解决方案3】:

    你可以和grep结合:

    ls -l | grep '^d'
    

    仅获取文件名:

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

    你可以把它变成一个方便的别名

    alias ldir="ls -l | grep '^d'"
    

    【讨论】:

    • 如果你已经在使用awkgrep是多余的:ls -l | awk '/^d/ { print $9 }'
    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 2010-11-04
    • 2010-11-03
    • 1970-01-01
    • 2019-07-06
    • 2016-06-18
    • 1970-01-01
    • 2012-02-26
    相关资源
    最近更新 更多